웹사이트 검색

Pandas to_csv() - DataFrame을 CSV로 변환


Pandas DataFrame to_csv() 함수는 DataFrame을 CSV 데이터로 변환합니다. 파일 개체를 전달하여 CSV 데이터를 파일에 쓸 수 있습니다. 그렇지 않으면 CSV 데이터가 문자열 형식으로 반환됩니다.

Pandas DataFrame to_csv() 구문

DataFrame to_csv() 함수의 구문은 다음과 같습니다.

def to_csv(
    self,
    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=".",
)

몇 가지 중요한 매개변수는 다음과 같습니다.

  • path_or_buf: CSV 데이터를 쓸 파일 개체입니다. 이 인수가 제공되지 않으면 CSV 데이터가 문자열로 반환됩니다.
  • sep: CSV 데이터의 구분 기호입니다. 길이가 1인 문자열이어야 하며 기본값은 쉼표입니다.
  • na_rep: null 또는 누락된 값을 나타내는 문자열, 기본값은 빈 문자열입니다.
  • columns: CSV 출력에 포함할 열을 지정하는 시퀀스입니다.
  • 헤더: 허용되는 값은 부울 또는 문자열 목록이며 기본값은 True입니다. False이면 열 이름이 출력에 기록되지 않습니다. 문자열 목록인 경우 열 이름을 쓰는 데 사용됩니다. 문자열 목록의 길이는 CSV 파일에 기록되는 열의 수와 같아야 합니다.
  • 색인: True인 경우 CSV 데이터에 색인이 포함됩니다. False이면 인덱스 값이 CSV 출력에 기록되지 않습니다.
  • index_label: 인덱스에 대한 열 이름을 지정하는 데 사용됩니다.

Pandas DataFrame에서 CSV로의 예

to_csv() 함수를 사용하여 DataFrame을 CSV 데이터로 변환하는 몇 가지 일반적인 예를 살펴보겠습니다.

1. DataFrame을 CSV 문자열로 변환

import pandas as pd

d1 = {'Name': ['Pankaj', 'Meghna'], 'ID': [1, 2], 'Role': ['CEO', 'CTO']}

df = pd.DataFrame(d1)

print('DataFrame:\n', df)

# default CSV
csv_data = df.to_csv()
print('\nCSV String:\n', csv_data)

산출:

DataFrame:
      Name  ID Role
0  Pankaj   1  CEO
1  Meghna   2  CTO

CSV String:
 ,Name,ID,Role
0,Pankaj,1,CEO
1,Meghna,2,CTO

2. CSV 출력 구분 기호 지정

csv_data = df.to_csv(sep='|')
print(csv_data)

산출:

|Name|ID|Role
0|Pankaj|1|CEO
1|Meghna|2|CTO

지정된 구분자 길이가 1이 아니면 TypeError: "delimiter” must be a 1-character string이 발생합니다.

3. CSV 출력을 위해 몇 개의 열만 선택

csv_data = df.to_csv(columns=['Name', 'ID'])
print(csv_data)

산출:

,Name,ID
0,Pankaj,1
1,Meghna,2

인덱스는 유효한 열로 간주되지 않습니다.

4. CSV 출력에서 헤더 행 무시

csv_data = df.to_csv(header=False)
print(csv_data)

산출:

0,Pankaj,1,CEO
1,Meghna,2,CTO

5. CSV에서 사용자 지정 열 이름 설정

csv_data = df.to_csv(header=['NAME', 'ID', 'ROLE'])
print(csv_data)

산출:

,NAME,ID,ROLE
0,Pankaj,1,CEO
1,Meghna,2,CTO

다시 인덱스는 DataFrame 개체의 열로 간주되지 않습니다.

6. CSV 출력에서 인덱스 열 건너뛰기

csv_data = df.to_csv(index=False)
print(csv_data)

산출:

Name,ID,Role
Pankaj,1,CEO
Meghna,2,CTO

7. CSV에서 인덱스 열 이름 설정

csv_data = df.to_csv(index_label='Sl No.')
print(csv_data)

산출:

Sl No.,Name,ID,Role
0,Pankaj,1,CEO
1,Meghna,2,CTO

8. DataFrame을 CSV 파일로 변환

with open('csv_data.txt', 'w') as csv_file:
    df.to_csv(path_or_buf=csv_file)

9. CSV 출력에서 Null, NA 또는 누락된 데이터 표현

import pandas as pd

d1 = {'Name': ['Pankaj', 'Meghna'], 'ID': [1, pd.NaT], 'Role': [pd.NaT, 'CTO']}
df = pd.DataFrame(d1)
print('DataFrame:\n', df)

csv_data = df.to_csv()
print('\nCSV String:\n', csv_data)

csv_data = df.to_csv(na_rep="None")
print('CSV String with Null Data Representation:\n', csv_data)

산출:

DataFrame:
      Name   ID Role
0  Pankaj    1  NaT
1  Meghna  NaT  CTO

CSV String:
 ,Name,ID,Role
0,Pankaj,1,
1,Meghna,,CTO

CSV String with Null Data Representation:
 ,Name,ID,Role
0,Pankaj,1,None
1,Meghna,None,CTO

참조

  • Pandas read_csv() – CSV 파일을 DataFrame으로 읽기
  • Python Pandas 모듈 자습서
  • DataFrame to_csv() API 문서