프로그래밍/Python

[파이썬, Python] csv 파일 저장 및 불러오기 (read_csv, to_csv)

최애강 2023. 1. 23. 22:33
728x90

pandas 라이브러리를 활용하여 csv 파일 불러오는 방법 및 다양한 옵션들을 알아보겠습니다.

 

import pandas as pd

 

1. Dataframe 생성하여 csv 파일로 저장하기

 - 우선 임의의 dataframe을 생성하여 csv로 저장해보겠습니다.

 - dataframe 변수에서 to_csv로 저장할 수 있으며 파일명을 입력하면 됩니다.

 - index 옵션 : index를 포함하여 저장할 것인지 여부 (default : True)

df = pd.DataFrame({'a':[1,2,3,4,5,6,7,8,9],
                   'b':[9,8,7,6,5,4,3,2,1],
                   'c':[6,7,8,9,1,2,3,4,5],
                   'd':[5,4,3,2,1,9,8,7,6]})

df.to_csv('test_1.csv')
df.to_csv('test_2.csv', index=False)

결과

- 옵션에 따라 인덱스가 포함여부가 달라지는 것을 확인할 수 있습니다.

test_1.csv test_2.csv
index=True 결과 (default)
index=False 결과

 

 

2. csv 파일 불러오기

- 저장한 csv 파일을 불러오겠습니다.

df_1 = pd.read_csv('test_1.csv')
df_2 = pd.read_csv('test_2.csv')
df_1
df_2

결과

 df_1 df_2
df_1

결과를 보게 되면 index를 포함하여 저장된 csv는 index까지 불러와 열이 하나 추가된 것을 확인할 수 있습니다.

파일에 index가 포함된 경우에는 옵션으로 인덱스의 위치를 알려주어야 인덱스를 인덱스로 불러오게 됩니다.

코드는 아래와 같습니다.

 

 

3. index 열 설정하여 csv 불러오기

- index_col 옵션에 인덱스 columns 번호를 입력해주면 해당 열을 인덱스로 불러오게 됩니다.

- 특정 열을 인덱스로 불러올 수도 있습니다. (ex) index_col='a'

df_1 = pd.read_csv('test_1.csv', index_col=0)
df_1

결과

df_2와 결과가 동일한 것을 확인할 수 있습니다.

 

4. header 포함하지 않고 불러오기

- csv 파일에 header가 없을 시, header=None 옵션을 주면 첫번째 열부터 data로 불러오게 됩니다.

df_2 = pd.read_csv('test_2.csv', header=None)
df_2

결과

첫번째 열까지 데이터로 불러온 것을 확인할 수 있습니다.

 

5. 원하는 행(row) 수 만큼만 불러오기

- nrows 옵션으로 원하는 행만큼만 불러올 수 있습니다.

df_2 = pd.read_csv('test_2.csv', nrows=3)
df_2

결과

3개의 데이터만 불러온 것을 확인할 수 있습니다.

 

6. 원하는 행만큼 skip해서 불러오기

- skiprows 옵션으로 원하는 행만큼 skip한 이후부터 불러올 수 있습니다.

df_2 = pd.read_csv('test_2.csv', skiprows=6)
df_2

결과

- 위 결과를 보면 header 까지 skip되기 때문에 np.arange 함수를 활용하여 특정 행을 골라서 skip 할 수 있습니다.

- 리스트 형태로도 적용 가능합니다. (ex) skiprows=[1,2,3,4]

import numpy as np
# 1~4 행 skip
df_2 = pd.read_csv('test_2.csv', skiprows=np.arange(1,5))
df_2

결과

1~4행이 skip된 것을 확인할 수 있습니다.