Рубрики
Без рубрики

Pandas to_csv () – конвертировать dataframe на csv

Функция Pandas dataframe to_csv () преобразует dataframe в данные CSV. Мы можем пройти объект файла для записи данных CSV в файл. В противном случае данные CSV

Автор оригинала: Pankaj Kumar.

Функция 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 возвращаются в виде строки.
  • Сен : разделитель для данных CSV. Это должна быть строка длины 1, по умолчанию является запятой.
  • na_rep : Строка, представляющая нулевые или отсутствующие значения, по умолчанию пустая строка.
  • Колонны : последовательность, чтобы указать столбцы, чтобы включить в вывод CSV.
  • Заголовок : Допустимые значения логические или список строки, по умолчанию верно. Если 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, Типерре: «Разделитель» должен быть 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)

Мы используем с оператором, чтобы открыть файл, оно заботится о том, чтобы закрыть файл при выполнении блока оператора завершено.

Этот фрагмент кода создаст файл CSV со следующими данными.

9. NULL, 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

Рекомендации