pandas.DataFrame.to_csv#

DataFrame.to_csv(path_or_buf=None, *, sep=',', na_rep='', float_format=None, столбцы=None, header=True, index=True, index_label=None, mode='w', кодировка=None, compression='infer', quoting=None, quotechar='"', lineterminator=None, chunksize=None, date_format=None, двойные кавычки=True, escapechar=None, десятичный='.', ошибки='strict', storage_options=None)[источник]#

Запись объекта в файл значений, разделенных запятыми (csv).

Параметры:
path_or_bufstr, объект пути, файлоподобный объект или None, по умолчанию None

Строка, объект пути (реализующий os.PathLike[str]) или файлоподобный объект, реализующий функцию write(). Если None, результат возвращается как строка. Если передан небинарный файловый объект, он должен быть открыт с newline='', отключая универсальные переводы строк. Если передан объект двоичного файла, mode может потребоваться содержать 'b'.

sepstr, по умолчанию ','

Строка длиной 1. Разделитель полей для выходного файла.

na_repstr, по умолчанию ‘’

Представление отсутствующих данных.

float_formatstr, Callable, по умолчанию None

Строка формата для чисел с плавающей точкой. Если задан Callable, он имеет приоритет над другими параметрами форматирования чисел, такими как decimal.

столбцыsequence, optional

Столбцы для записи.

headerbool или список строк, по умолчанию True

Записать названия столбцов. Если задан список строк, он считается псевдонимами для названий столбцов.

indexbool, по умолчанию True

Записать имена строк (индекс).

index_labelstr или последовательность, или False, по умолчанию None

Метка столбца для столбца(ов) индекса, если требуется. Если задано None, и header и index равны True, то используются имена индексов. Последовательность должна быть задана, если объект использует MultiIndex. Если False, не выводить поля для имен индексов. Используйте index_label=False для более простого импорта в R.

mode{‘w’, ‘x’, ‘a’}, по умолчанию ‘w’

Перенаправлено либо в open(mode=) или fsspec.open(mode=) для управления открытием файла. Типичные значения включают:

  • ‘w’, сначала обрезать файл.

  • ‘x’, эксклюзивное создание, с ошибкой, если файл уже существует.

  • 'a', добавить в конец файла, если он существует.

кодировкаstr, optional

Строка, представляющая кодировку для использования в выходном файле, по умолчанию 'utf-8'. кодировка не поддерживается, если path_or_buf является небинарным файловым объектом.

compressionстрока или словарь, по умолчанию ‘infer’

Для сжатия выходных данных на лету. Если 'infer' и 'path_or_buf' является путем, то определить сжатие по следующим расширениям: '.gz', '.bz2', '.zip', '.xz', '.zst', '.tar', '.tar.gz', '.tar.xz' или '.tar.bz2' (в противном случае без сжатия). Установить в None без сжатия. Также может быть словарем с ключом 'method' установить в одно из {'zip', 'gzip', 'bz2', 'zstd', 'xz', 'tar'} и другие пары ключ-значение передаются в zipfile.ZipFile, gzip.GzipFile, bz2.BZ2File, zstandard.ZstdCompressor, lzma.LZMAFile или tarfile.TarFile, соответственно. Например, для ускорения сжатия и создания воспроизводимого gzip-архива можно передать: compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}.

Добавлено в версии 1.5.0: Добавлена поддержка для .tar файлы.

Может быть словарем с ключом 'method' как режим сжатия и другими записями как дополнительные параметры сжатия, если режим сжатия 'zip'.

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

quotingопциональная константа из модуля csv

По умолчанию csv.QUOTE_MINIMAL. Если вы установили float_format тогда числа с плавающей точкой преобразуются в строки, и поэтому csv.QUOTE_NONNUMERIC будет рассматривать их как нечисловые.

quotecharstr, по умолчанию '"'

Строка длиной 1. Символ, используемый для цитирования полей.

lineterminatorstr, optional

Символ или последовательность символов новой строки для использования в выходном файле. По умолчанию os.linesep, который зависит от ОС, в которой вызывается этот метод ('\n' для Linux, '\r\n' для Windows).

Изменено в версии 1.5.0: Ранее был line_terminator, изменено для согласованности с read_csv и стандартной библиотекой 'csv' модуля.

chunksizeint или None

Строк для записи за один раз.

date_formatstr, по умолчанию None

Строка формата для объектов datetime.

двойные кавычкиbool, по умолчанию True

Управление кавычками quotechar внутри поля.

escapecharstr, по умолчанию None

Строка длиной 1. Символ, используемый для экранирования sep и quotechar когда это уместно.

десятичныйstr, default ‘.’

Символ, распознаваемый как десятичный разделитель. Например, используйте ',' для европейских данных.

ошибкиstr, по умолчанию 'strict'

Определяет, как обрабатывать ошибки кодирования и декодирования. См. аргумент errors для open() для полного списка опций.

storage_optionsdict, optional

Дополнительные параметры, которые имеют смысл для конкретного соединения с хранилищем, например, хост, порт, имя пользователя, пароль и т.д. Для HTTP(S) URL пары ключ-значение передаются в urllib.request.Request в качестве параметров заголовка. Для других URL-адресов (например, начинающихся с "s3://" и "gcs://") пары ключ-значение передаются fsspec.open. Пожалуйста, смотрите fsspec и urllib для получения дополнительной информации, а для дополнительных примеров по опциям хранения см. здесь.

Возвращает:
None или str

Если path_or_buf равен None, возвращает результирующий csv-формат в виде строки. В противном случае возвращает None.

Смотрите также

read_csv

Загрузить CSV-файл во фрейм данных.

to_excel

Запись DataFrame в файл Excel.

Примеры

Создать 'out.csv', содержащий 'df' без индексов

>>> df = pd.DataFrame({'name': ['Raphael', 'Donatello'],
...                    'mask': ['red', 'purple'],
...                    'weapon': ['sai', 'bo staff']})
>>> df.to_csv('out.csv', index=False)  

Создать 'out.zip', содержащий 'out.csv'

>>> df.to_csv(index=False)
'name,mask,weapon\nRaphael,red,sai\nDonatello,purple,bo staff\n'
>>> compression_opts = dict(method='zip',
...                         archive_name='out.csv')  
>>> df.to_csv('out.zip', index=False,
...           compression=compression_opts)  

Чтобы записать csv файл в новую папку или вложенную папку, сначала нужно создать её с помощью Pathlib или os:

>>> from pathlib import Path  
>>> filepath = Path('folder/subfolder/out.csv')  
>>> filepath.parent.mkdir(parents=True, exist_ok=True)  
>>> df.to_csv(filepath)  
>>> import os  
>>> os.makedirs('folder/subfolder', exist_ok=True)  
>>> df.to_csv('folder/subfolder/out.csv')