12k
All articles

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

Экспорт DataFrame в CSV с помощью to_csv: разбор параметров для настройки разделителей, обработки пропущенных данных, типов сжатия и выбора столбцов.

OpenReplay Team
OpenReplay Team
Экспорт 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.

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

Как сохранить DataFrame в CSV с другой кодировкой?

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

Могу ли я дописать в существующий файл CSV?

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

Как экспортировать DataFrame в файл CSV с настройками немецкой локали?

Используйте `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

We use cookies to improve your experience. By using our site, you accept cookies.