[파이썬, Python] csv 파일 저장 및 불러오기 (read_csv, to_csv)
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 |
![]() |
![]() |
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 |
![]() |
![]() |
결과를 보게 되면 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된 것을 확인할 수 있습니다.