Pandas DataFrame CSV 파일로 저장하기

choify·2022년 7월 21일
0

Pandas 데이터프레임 CSV 파일 저장하기

Index

  • Pandas DataFrame을 CSV 파일로 저장

  • 헤더 사용하지 않기

  • 사용자 지정 구분기호 사용하여 저장하기

  • 인덱스 무시하고 저장하기

  • 선택한 열만 저장하기

  • 결측값 처리하여 저장하기

  • 인코딩하고 저장하기

  • 기존 CSV파일에 추가하기

  • 기타 자주 사용하는 매개변수



Pandas 데이터프레임 CSV파일로 저장하기


  • Pandas DataFrame은 to_csv()헤더 및 인덱스와 함께 CSV 쉼표로 구분된 구분자 파일에 DataFrame을 쓰거나 내보내는 방법 제공
# Write DataFrame to CSV File with Default params.
df.to_csv("c:/tmp/courses.csv")
  • 이렇게 하면 courses.csv파일의 아래 내용으로 지정된 위치에 파일이 생성

to_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,,



사용자 지정 구분 기호를 사용하여 저장


  • 기본적으로 CSV 파일은 쉼표 구분 기호로 생성되며 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||



인덱스 무시하고 CSV파일로 저장


  • 기본적으로 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,,



선택한 열을 CSV파일로 저장하기


  • 때로는 DataFrame에서 CSV 파일로 선택한 열을 내보내야 할 수도 있는데, 이런 경우에 columnsparam을 사용하면 된다.

  • 예시에서는 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)


  • CSV파일로 저장할 떄 NoneNaN값이 빈 문자열로 작성된다.
  • 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에 저장하기


  • 인코딩에 문제가 있는 경우에는 DataFrame을 CSV 파일에 쓰는 동안 인코딩을 지정하는 것이 좋다.

  • 특정 인코딩을 사용하려면  encoding 인수를 사용하면 된다.

  • 예를 들어, CSV 파일 encoding='utf-8'로 인코딩된 팬더 DataFrame을 내보낸다 .utf-8

# Write CSV by Encoding
df.to_csv(file_name, sep='\t', encoding='utf-8')

기존 CSV 파일에 DataFrame 추가하기


  • 기존 CSV 파일에 pandas DataFrame을 작성하면 파일을 새 내용으로 덮어씁니다. 기존 CSV 파일에 DataFrame을 추가하려면 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='|'



Reference

profile
Hello =)

0개의 댓글