Экспорт 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, совместимые с различными приложениями и локалями.