Поиск по сайту:

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: строка, представляющая нулевые или отсутствующие значения, по умолчанию — пустая строка.
  • columns: последовательность, указывающая столбцы для включения в выходные данные CSV.
  • заголовок: разрешены логические значения или список строк, по умолчанию — True. Если False, имена столбцов не записываются в вывод. Если это список строк, он используется для записи имен столбцов. Длина списка строк должна совпадать с количеством столбцов, записываемых в CSV-файл.
  • index: если 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: \разделитель должен быть строкой из 1 символа.

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. Нулевое, NA или отсутствующее представление данных в выходных данных CSV

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
  • Документ по API DataFrame to_csv()