Экспорт DataFrame Pandas в CSV файл – Использование .to_csv()
Изучите, как использовать Pandas для преобразования фрейма данных в CSV-файл с помощью метода .to_csv()
, который помогает экспортировать данные Pandas в CSV-файлы. Вы узнаете, как работать с различными параметрами, позволяющими включать или исключать индекс, изменять разделители и кодировку, работать с отсутствующими данными, ограничивать столбцы и выполнять сжатие.
CSV, сокращение от comma separated values
(значения, разделённые запятыми), представляют собой полезный формат, в котором данные хранятся в файле с текстом с разделителями (обычно разделёнными запятыми), размещая записи на отдельных строках. Их часто используют в различных приложениях благодаря их взаимозаменяемости, что позволяет с лёгкостью переносить данные между различными проприетарными форматами.
Знание работы с CSV-файлами в Python и Pandas даст вам преимущество в начале работы!
Быстрый ответ: используйте функцию .to_csv()
Краткое резюме
Таблица ниже обобщает ключевые параметры и их сценарии использования метода Pandas .to_csv()
. Нажмите на параметр в таблице, чтобы перейти к подробной секции ниже.
Пишите с индексом или без него
df.to_csv(..., index = False)
Записать только подмножество столбцов в CSV
df.to_csv(..., columns = ['col1', 'col2'])
Измените тип разделителя, который нужно использовать
df.to_csv(..., sep = '\t')
Как изменить способ сохранения отсутствующих данных
df.to_csv(..., na_rep = 'N/A')
Включать заголовок или нет
df.to_csv(..., header = False)
Измените используемый тип кодировки
df.to_csv(..., encoding = 'utf-8')
Сжимать данные или нет
df.to_csv(..., compression = True)
SpecУкажите формат значений datetime
df.to_csv(..., date_format = '%Y-%m-%d')
Оглавление
Что такое CSV-файлы?
CSV-файлы (файлы значений, разделенных запятыми) - это текстовые файлы, часто используемые для представления табличных данных. Данные обычно разделяются запятыми, что и дало им название. В то время как атрибуты данных разделяются запятыми, записи, как правило, разделяются новыми строками.
CSV-файлы являются легковесными и относительно платформенно независимыми. Из-за этого они часто используются для передачи данных между различными системами.
CSV-файл часто хранит заголовки таблицы в первой строке. Многие программы знают, что первую строку нужно интерпретировать как строку заголовков.
Давайте посмотрим, как файл CSV может хранить данные:
Если мы захотим преобразовать это в таблицу, это будет выглядеть:
Nik
2020
1000
Nik
2021
2300
Jane
2020
1900
Jane
2021
3400
Теперь давайте разберемся, как загрузить образец датафрейма Pandas, который вы будете использовать на протяжении этого руководства для экспорта ваших данных.
Загрузка образца фрейма данных
Если вы хотите следовать этому руководству, загрузите фрейм данных, предоставленный ниже. Фрейм данных будет содержать три столбца и только четыре записи, чтобы сделать его легким и простым в использовании.
Теперь, когда у вас есть dataframe для работы, давайте научимся использовать Pandas для экспорта dataframe в файл CSV.
Экспорт Pandas Dataframe в CSV
Чтобы использовать Pandas для экспорта DataFrame в файл CSV, можно воспользоваться методом DataFrame под названием .to_csv()
. Единственный обязательный аргумент метода — это параметр path_or_buf =
, который указывает, куда следует сохранить файл.
Аргумент может принимать:
Относительное имя файла, которое сохранит файл как CSV в текущем рабочем каталоге
Введите полный путь к файлу, чтобы сохранить файл в указанном месте
Давайте посмотрим, как это выглядит в нашем коде на Pandas:
В следующем разделе вы узнаете, как удалить индекс из вашего датафрейма Pandas при экспорте в файл CSV.
Экспорт Pandas в CSV без индекса
По умолчанию, Pandas будет включать индекс датафрейма при экспорте его в CSV-файл с помощью метода .to_csv()
. Если вы не хотите включать индекс, просто измените параметр index = False
.
Давайте посмотрим, как мы можем это сделать:
Это может быть весьма полезно, когда ваш индекс не имеет смысла. Однако подумайте об этом внимательно, если вы используете индекс для хранения значимой информации, например, временных рядов.
Параметр по умолчанию установлен на True
. Поэтому, если вы хотите включить индекс, вы можете просто оставить аргумент без изменений.
Работа со столбцами при экспорте Pandas в CSV
При экспорте данных вы можете учитывать их размер. Один из способов уменьшить размер экспортируемого CSV-файла — **ограничить количество экспортируемых столбцов.
Вы можете указать, какие столбцы включить в экспорт, используя аргумент columns =
, который принимает список столбцов, которые вы хотите включить. Любые столбцы, не включенные в список, не будут включены в экспорт.
Давайте посмотрим, как мы можем использовать параметр columns =
для указания меньшего набора столбцов для экспорта:
Изменение разделителя при экспорте Pandas в CSV
Хотя файлы с разделителями, разделенные запятыми, получили свое название благодаря разделению запятыми, файлы CSV также могут быть разделены другими символами. Например, распространенный разделитель – это табуляция, которая может быть представлена программно.
Давайте посмотрим, как мы можем использовать аргумент sep=
, чтобы изменить разделитель в Pandas.
В следующем разделе вы узнаете, как обозначать отсутствующие данные при экспорте фрейма данных в CSV.
Работа с отсутствующими данными при экспорте Pandas в CSV
По умолчанию, CSV-файлы не будут содержать информацию о пропущенных данных. Они просто не будут отображать никакого значения вообще.
Если, однако, вы хотите отображать другое значение, например, N/A
для всех ваших отсутствующих значений, вы можете сделать это, используя аргумент na_rep =
. Значение по умолчанию для этого аргумента — пустая строка, но он принимает любую строку.
Загрузим строку 'N/A'
, чтобы было ясно, что данные отсутствуют:
Удаление заголовка при экспорте Pandas в CSV
В процессе вашей работы с данными могут возникнуть ситуации, когда вам потребуется экспортировать набор данных из Pandas без заголовка. Это особенно актуально при экспорте больших наборов данных, которые впоследствии потребуется объединить.
Pandas упрощает экспорт dataframe в CSV файл без заголовка.
Это выполняется с помощью аргумента header =
, который принимает булевое значение. По умолчанию используется значение True
, что означает, что заголовок включен.
Давайте посмотрим, как мы можем изменить это поведение в Pandas
Pandas в CSV с разными кодировками
Когда вы работаете со строковыми данными, часто возникает необходимость их кодирования. Это менее характерно для числовых или уже закодированных данных, но строки зачастую требуют дополнительных инструкций касательно их интерпретации.
Тип кодировки по умолчанию — utf-8
, что является чрезвычайно распространённым форматом кодировки.
Давайте посмотрим, как мы можем экспортировать Pandas датафрейм в CSV, используя кодировку latin1
:
Сжатие данных при экспорте Pandas в CSV
При работе с большими наборами данных, предназначенными для длительного хранения, может быть полезно сжать набор данных, особенно при сохранении в формате CSV.
При сжатии набора данных размер файла уменьшается. Однако время, которое требуется Pandas для экспорта в CSV, также увеличивается. Аналогично, увеличивается время, которое Pandas потребуется для чтения CSV файла в датафрейм. Это происходит потому, что этап сжатия занимает больше времени, чем простой экспорт.
Однако существует множество случаев, когда сжатие является полезным инструментом, особенно при архивировании данных для долгосрочного хранения или когда данные не используются
Давайте посмотрим, как мы можем использовать этот логический аргумент для сжатия наших данных:
Укажите формат даты при экспорте Pandas в CSV
Pandas облегчает работу с форматами даты и времени. Однако в базах данных, между которыми вы перемещаете данные, могут быть установлены определенные форматы дат, которых необходимо придерживаться.
К счастью, благодаря Pandas этот процесс становится довольно простым благодаря использованию аргумента date_format =
. Этот аргумент принимает строку, которая позволяет указать, как даты должны форматироваться в экспортируемом CSV.
Давайте посмотрим, как мы можем применить формат YYYY-MM-DD
к нашим датам при экспорте фрейма данных Pandas:
Заключение
В этом уроке вы узнали, как с помощью Pandas экспортировать ваши датафреймы в CSV файлы. Вы научились эффективно использовать функцию Pandas .to_csv()
, а также использовать её многочисленные параметры для настройки экспорта данных. Некоторые из ключевых параметров, которые вы узнали, включают index=
, который определяет, включать ли индекс, и encoding=
, который указывает кодировку, которую вы хотите использовать.
Last updated