[Python pandas] DataFrame을 csv 파일로 내보내기 : df.to_csv()
Python 분석과 프로그래밍/Python 데이터 전처리 2016. 11. 26. 00:41이전 포스팅에서는 (1) Python의 pandas read_csv() 함수를 사용해서 외부 text, csv 파일을 읽어들이는 방법과, (2) DB connection 해서 DB로 부터 직접 Data를 읽어와서 DataFrame으로 만드는 방법을 소개하였습니다.
이번 포스팅에서는 이전과는 반대로 Python의 pandas library 를 사용해서 DataFrame을 csv 파일로 내보내는 방법을 소개하겠습니다.
pandas의 DataFrame.to_csv() 함수를 사용합니다.
먼저 실습에 필요한 Python library를 import 하겠습니다.
In [51]: import pandas as pd In [52]: from pandas import DataFrame
|
다음으로, csv 파일로 내보내는데 사용할 간단한 DataFrame을 dict를 사용해서 만들어보겠습니다.
In [53]: data = {'ID': ['A1', 'A2', 'A3', 'A4', 'A5'], ...: 'X1': [1, 2, 3, 4, 5], ...: 'X2': [3.0, 4.5, 3.2, 4.0, 3.5]} In [54]: data_df = DataFrame(data, index=['a', 'b', 'c', 'd', 'e']) # converting to DataFrame In [55]: data_df Out[55]: ID X1 X2 a A1 1 3.0 b A2 2 4.5 c A3 3 3.2 d A4 4 4.0 e A5 5 3.5
|
결측값(Missing Value)을 csv 파일로 내보낼 때 표기 지정하는 매개변수 설명을 위해서, 제일 마지막 행(row)에 결측값을 추가해보겠습니다.
In [56]: data_df_2 = data_df.reindex(['a', 'b', 'c', 'd', 'e', 'f']) In [57]: data_df_2 # 'f' : NaN Out[57]: ID X1 X2 a A1 1.0 3.0 b A2 2.0 4.5 c A3 3.0 3.2 d A4 4.0 4.0 e A5 5.0 3.5 f NaN NaN NaN
|
자, 이제 'data_df_2' 라는 DataFrame을 to_csv() 를 사용해서 csv 파일로 내보내보겠습니다.
DataFrame.to_csv('path\\file_name.csv', sep=',', na_rep='NaN') 의 형식으로 설정해주면 됩니다.
In [60]: data_df_2.to_csv('C:\\Documents\\Python\\data_df_2.csv', # file path, file name ...: sep=',', # seperator, delimiter (구분자) ...: na_rep='NaN') # missing data representation (결측값 표기)
|
위에 지정해준 경로에 가서 'data_df_2.csv' 파일을 열어보니 아래처럼 데이터가 잘 들어가 있음을 확인할 수 있습니다.
아래는 디폴트 설정으로서 참고하시기 바랍니다. (아래 디폴트 설정과 다를때만 False 로 명기하면 되며, 그 외에는 별도 명기 필요 없음)
header = True (첫번째 줄을 칼럼 이름으로 사용)
columns = 특정 칼럼만 csv 로 쓰기 (내보내기) 할 때 칼럼 이름을 list에 적어줌
index = True (행의 이름 index 도 같이 내보냄. index 내보내기 싫으면 False 명기)
float_format = '%.2f' (예: float8 을 소수점 둘째 자리까지 표기)
encoding = 'utf-8' (on Python 3)
line_terminator = '\n' (엔터로 줄 바꿈)
date_format = None (datetime 객체에 대한 format 설정하지 않음)
data_df_2.to_csv('C:/Users/admin/Documents/data_df_x2.csv', sep=',', na_rep='NaN', float_format = '%.2f', # 2 decimal places columns = ['ID', 'X2'], # columns to write index = False) # do not write index |
더 많은 to_csv() 매개변수를 보기 원하면 아래 Reference 사이트를 참고하세요.
[Reference] http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html