Back

Экспорт DataFrame в CSV с помощью Pandas: Полное руководство по методу to_csv()

Экспорт DataFrame в CSV с помощью Pandas: Полное руководство по методу to_csv()

Экспорт DataFrame в CSV с помощью Pandas: Полное руководство по методу to_csv()

Вы пытаетесь сохранить DataFrame из Pandas в файл CSV? Метод to_csv() в Pandas позволяет легко экспортировать ваши данные в файл со значениями, разделенными запятыми (CSV), всего несколькими строками кода.

В этом руководстве мы рассмотрим, как использовать to_csv() для сохранения DataFrame в CSV, охватывая ключевые параметры для настройки вывода. Вы также увидите примеры распространенных опций, таких как исключение индекса, указание разделителя, обработка отсутствующих данных и многое другое.

Как экспортировать DataFrame в CSV с помощью to_csv()

Базовый синтаксис для сохранения DataFrame df из Pandas в файл CSV:

df.to_csv('data.csv', index=False)

Это экспортирует DataFrame в файл с именем data.csv в текущей директории. Параметр index=False исключает индекс DataFrame из сохранения в CSV.

Некоторые другие часто используемые параметры to_csv() включают:

  • sep: Строка длиной 1, указывающая разделитель полей. По умолчанию ,.
  • na_rep: Строковое представление отсутствующих данных. По умолчанию пустая строка.
  • header: Записывать названия столбцов в CSV. По умолчанию True.
  • encoding: Кодировка файла. По умолчанию 'utf-8'.

Мы подробнее рассмотрим эти опции в примерах ниже.

Примеры экспорта DataFrame в CSV

Базовый экспорт DataFrame в CSV

import pandas as pd

data = {'name': ['John', 'Anna', 'Peter', 'Linda'], 
        'age': [25, 31, 42, 28],
        'city': ['New York', 'Paris', 'Berlin', 'London']}

df = pd.DataFrame(data)

df.to_csv('people.csv', index=False)

Сохраняет DataFrame в people.csv с опциями по умолчанию - разделитель запятая и без столбца индекса.

Указание разделителя и представления отсутствующих данных

df.to_csv('people.csv', sep='\t', na_rep='MISSING', index=False)

Использует табуляцию (\t) вместо запятой в качестве разделителя и представляет отсутствующие данные как строку 'MISSING'.

Сохранение подмножества столбцов в CSV

columns_to_save = ['name', 'age'] 
df.to_csv('people.csv', columns=columns_to_save, index=False)

Сохраняет только столбцы 'name' и 'age' в CSV.

Обработка столбцов DateTime

df['birth_date'] = pd.to_datetime(['1997-05-23', '1991-04-12', 
                                   '1980-09-01', '1994-11-18'])

df.to_csv('people.csv', date_format='%B %d, %Y', index=False)  

Указывает пользовательскую строку формата даты для столбцов DateTime с помощью параметра date_format.

Сжатый экспорт CSV

Pandas позволяет сохранять непосредственно в сжатые файлы CSV, указав тип сжатия:

# Сохранение в gzip-сжатый CSV
df.to_csv('people.csv.gz', compression='gzip', index=False)

# Сохранение в zip-сжатый CSV
df.to_csv('people.zip', compression='zip', index=False)  

Поддерживаемые типы сжатия включают 'gzip', 'bz2', 'zip', 'xz' и 'zstd'.

Ключевые моменты

  • Используйте df.to_csv('file.csv', index=False) для сохранения DataFrame в CSV без индекса.
  • Укажите разделитель с помощью параметра sep. Распространенные варианты - запятая , и табуляция \t.
  • Представляйте отсутствующие данные с помощью параметра na_rep.
  • Сохраняйте подмножество столбцов, передав список в параметр columns.
  • Форматируйте столбцы DateTime, используя date_format и коды strftime.
  • Экспортируйте напрямую в сжатые файлы CSV, указав тип compression.

Часто задаваемые вопросы

Укажите кодировку с помощью параметра `encoding`:\n\n```python\ndf.to_csv('data.csv', encoding='utf-16')\n```

Да, используйте `mode='a'` для дозаписи:\n\n```python\ndf.to_csv('data.csv', mode='a', header=False)\n```\n\nИсключите заголовок, чтобы избежать повторения имен столбцов.

Используйте `sep=';'` для разделителя точкой с запятой и `decimal=','` для десятичной запятой:\n\n```python\ndf.to_csv('data.csv', sep=';', decimal=',', index=False)\n```

Заключение

С этими опциями метод to_csv() в Pandas предоставляет гибкий способ экспорта DataFrame в файлы CSV. Настраивая такие параметры, как разделитель, кодировка и сжатие, вы можете создавать файлы CSV, совместимые с различными приложениями и локалями.

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers