Pandas DataFrame을 CSV 파일로 저장
헤더 사용하지 않기
사용자 지정 구분기호 사용하여 저장하기
인덱스 무시하고 저장하기
선택한 열만 저장하기
결측값 처리하여 저장하기
인코딩하고 저장하기
기존 CSV파일에 추가하기
기타 자주 사용하는 매개변수
to_csv()
헤더 및 인덱스와 함께 CSV 쉼표로 구분된 구분자 파일에 DataFrame을 쓰거나 내보내는 방법 제공# Write DataFrame to CSV File with Default params.
df.to_csv("c:/tmp/courses.csv")
courses.csv
파일의 아래 내용으로 지정된 위치에 파일이 생성# to_csv() Syntax
DataFrame.to_csv(path_or_buf=None, sep=',', na_rep='', float_format=None,
columns=None, header=True, index=True, index_label=None, mode='w', encoding=None,
compression='infer', quoting=None, quotechar='"', line_terminator=None,
chunksize=None, date_format=None, doublequote=True, escapechar=None,
decimal='.', errors='strict', storage_options=None)
param header=False
사용하여 헤더(열 이름) 없이 DataFrame을 작성할 수 있다.
기본적으로 to_csv() 메서드는 DataFrame을 헤더가 있는 CSV 파일로 내보낸다.
# Write DataFrame to CSV without Header
df.to_csv("c:/tmp/courses.csv", header=False)
# Writes Below Content to CSV File
#0,Spark,22000.0,30day,1000.0
#1,PySpark,25000.0,,2300.0
#2,Hadoop,,55days,1000.0
#3,Python,24000.0,,
sep
매개변수(구분 기호)를 사용하여 이 동작을 변경할 수 있고 탭(\t), 파이프(|) 등과 같은 다른 구분 기호를 선택할 수 있다.# Using Custom Delimiter
df.to_csv("c:/tmp/courses.csv", header=False, sep='|')
# Writes Below Content to CSV File
#0|Spark|22000.0|30day|1000.0
#1|PySpark|25000.0||2300.0
#2|Hadoop||55days|1000.0
#3|Python|24000.0||
기본적으로 DataFrame은 행 인덱스가 있는 CSV로 내보내지므로 param을 사용하여 이를 무시할 수 있다.
index=False
# Write DataFrame to CSV without Index
df.to_csv("c:/tmp/courses.csv", index=False)
# Writes Below Content to CSV File
#Courses,Fee,Duration,Discount
#Spark,22000.0,30day,1000.0
#PySpark,25000.0,,2300.0
#Hadoop,,55days,1000.0
#Python,24000.0,,
때로는 DataFrame에서 CSV 파일로 선택한 열을 내보내야 할 수도 있는데, 이런 경우에 columns
param을 사용하면 된다.
예시에서는 column_names
이 필수 열이 포함된 목록을 만들어 to_csv()
메서드에서 사용함.
파일에 쓰기 전에 DataFrame에서 열을 선택할 수도 있다.
# Export Selected Columns to CSV File
column_names = ['Courses', 'Fee','Discount']
df.to_csv("c:/tmp/courses.csv",index=False, columns=column_names)
# Writes Below Content to CSV File
#Courses,Fee,Discount
#Spark,22000.0,1000.0
#PySpark,25000.0,2300.0
#Hadoop,,1000.0
#Python,24000.0,
None
/ NaN
값이 빈 문자열로 작성된다.na_rep
param 을 사용하여 사용자 지정 값으로 할당할 수 있다 .# Handling Missing Values (None/NaN)
df.to_csv("c:/tmp/courses.csv",index=False, na_rep='Unknown')
# Writes Below Content to CSV File
#Courses,Fee,Duration,Discount
#Spark,22000.0,30day,1000.0
#PySpark,25000.0,Unknown,2300.0
#Hadoop,Unknown,55days,1000.0
#Python,24000.0,Unknown,Unknown
인코딩에 문제가 있는 경우에는 DataFrame을 CSV 파일에 쓰는 동안 인코딩을 지정하는 것이 좋다.
특정 인코딩을 사용하려면 encoding
인수를 사용하면 된다.
예를 들어, CSV 파일 encoding='utf-8'
로 인코딩된 팬더 DataFrame을 내보낸다 .utf-8
# Write CSV by Encoding
df.to_csv(file_name, sep='\t', encoding='utf-8')
mode='a'
.# Append DataFrame to existing CSV File
df.to_csv("c:/tmp/courses.csv", header=False, sep='|', index=False, mode='a')
float_format : 부동 소수점 숫자의 형식 문자열입니다.
path_or_buf : 파일 경로, 지정하지 않으면 문자열로 반환됩니다.
압축 : 압축하는 데 사용됩니다. 지원되는 압축 '추론', 'gzip', 'bz2', 'zip', 'xz'
quotechar : 길이가 1인 문자열. 필드를 인용하는 데 사용되는 문자. 기본 큰따옴표 "
line_terminator : 종료 라인에 사용할 문자입니다. 당신이 사용할 수있는os.linesep
date_format : 날짜/시간 개체의 형식 문자열입니다.
errors : 인코딩 및 디코딩 오류를 처리하는 방법을 지정합니다.
pandas.DataFrame.to_csv()
기본적으로 헤더, 인덱스 및 쉼표 구분 기호로 DataFrame을 작성된다.header=False
, 행 인덱스 무시index=False
,구분 기호 변경 sep='|'
등