DataFrame.to_csv(path_or_buf=None, *, sep=',', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, mode='w', encoding=None, compression='infer', quoting=None, quotechar='"', lineterminator=None, chunksize=None, date_format=None, doublequote=True, escapechar=None, decimal='.', errors='strict', storage_options=None)
path_or_buf=None
- cтрока, объект реализующий os.PathLike
(например pathlib
) или объект подобный файлу, реализующий функцию file.write()
. Если None
, то результат возвращается в виде строки. Если передается недвоичный файловый объект, его следует открыть с помощью newline=’’
(аргумент open()
), отключив универсальные переводы строк. Если передается двоичный файловый объект, то аргумент mode
должен содержать 'b'
.sep=','
- строка, разделитель полей для выходного файла.na_rep=''
- чем заполнять пропущенные значения (NaN) в данных.float_format=None
- строка формата для чисел float
. Если задан вызываемый объект, он имеет приоритет над другими аргументами числового форматирования, такими как аргумент decimal
.columns=None
- список строк с именами столбцов для записи в таблицу Excelheader=True
- писать ли имена столбцов. Если этому аргументу передан список строк, то предполагается, что это псевдонимы для имен столбцов.index=True
- записывать или нет индексные метки строк (индекс).index_label=None
- метка столбца для индекса, если требуется. Если не указано ни одного, а header
и index
имеют значение True
, то используются индексные метки. Следует указать последовательность, если объект использует MultiIndex
. Если значение False
, то не записывает поля для имен индексов. mode='w'
- передается либо в open(mode=)
, либо в fsspec.open(mode=)
для управления открытием файла. Типичные значения включают:'w'
- сначала очищает существующий файл.'x'
- эксклюзивное создание, завершается неудачей, если файл уже существует.'a'
- дозаписывает в конец файла, если он существует.encoding=None
- строка с кодировкой, которая будет использоваться в выходном файле, по умолчанию имеет значение 'utf-8'
. Кодировка не поддерживается, если path_or_buf
является файловым объектом.compression='infer'
- для сжатия выходных данных "на лету". Если compression='infer'
и аргумент 'path_or_buf'
является объектом pathlib
, то обнаруживает сжатие из следующих расширений: '.gz'
, '.bz2'
, '.zip'
, '.xz'
, '.zst'
, '.tar'
, '.tar.gz'
, '.tar.xz'
или '.tar.bz2'
(в противном случае сжатие отсутствует). Значение None
говорит об отсутствии сжатия.Этот аргумент может быть словарем c обязательным ключом 'method'
, установленным в один из 'zip'
, 'gzip'
, 'bz2'
, 'zstd'
, 'xz'
, 'tar'
, а другие пары ключ-значение пересылаются соответствующему модулю. В качестве примера, для более быстрого сжатия и создания воспроизводимого архива gzip
можно передать следующее: compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}
.quoting=None
- по умолчанию используется csv.QUOTE_MINIMAL
. Если установлен float_format
, то значения с плавающей точкой преобразуются в строки и, следовательно, в csv.QUOTE_NONNUMERIC
будет рассматривать их как нечисловые.quotechar='"'
- cтрока длиной 1 символ. Это символ, используемый для заключения полей в кавычки.lineterminator=None
- символ новой строки или последовательность символов, которые будут использоваться в выходном файле. По умолчанию используется os.linesep
, который зависит от операционной системы.chunksize=None
- количество строк для одновременной записи.date_format=None
- строка формата для объектов datetime
.doublequote=True
- управляет цитированием символа quotechar
внутри поля.escapechar=None
- cтрока длиной 1 символ, используемый для экранирования sep
и quotechar
, когда это уместно.decimal='.'
- Символ, распознаваемый как десятичный разделитель. Например. ','
для европейских данных.errors='strict'
- как должны обрабатываться ошибки кодирования и декодирования. Подробнее в описании аргумента errors
для функции open()
.storage_options=None
- дополнительные параметры, которые имеют смысл для конкретного подключения к хранилищу, например хост, порт, имя пользователя, пароль и т.д. Для URL-адресов HTTP, пары ключ-значение пересылаются в urllib.request.Request
в качестве аргумента headers
. Для других URL-адресов (например, начинающихся с 's3://'
и 'gcs://'
) пары ключ-значение пересылаются в fsspec.open
. path_or_buf=None
, то возвращает результирующий формат csv в виде строки. В противном случае возвращает None
.DataFrame.to_csv()
:Метод DataFrame.to_csv()
модуля pandas
записывает объект DataFrame
в файл значений, разделенных запятыми (CSV).
Создаем файл out.csv
, содержащий DataFrame
без индексов
>>> import pandas as pd >>> df = pd.DataFrame({'name': ['Raphael', 'Donatello'], ... 'mask': ['red', 'purple'], ... 'weapon': ['sai', 'bo staff']}) >>> df # name mask weapon # 0 Raphael red sai # 1 Donatello purple bo staff >>> df.to_csv('out.csv', index=False)
Создать архив out.zip
, который содержит файл out.csv
>>> compression_opts = {method='zip', archive_name='out.csv'} >>> df.to_csv('out.zip', index=False, compression=compression_opts)
Чтобы создать архив out.csv.zip
в автоматическом режиме, который будет содержит файл out.csv
>>> from pathlib import Path # необходимо, что бы файл назывался 'test.csv.zip' # а путь был объектом `pathlib` >>> f = Path('test.csv.zip') >>> df.to_csv(f)
Чтобы записать csv-файл в новую папку или вложенную папку, сначала нужно будет создать его, используя либо модуль pathlib
, либо os
:
При помощи модуля pathlib
:
>>> from pathlib import Path >>> filepath = Path('folder/subfolder/out.csv') >>> filepath.parent.mkdir(parents=True, exist_ok=True) >>> df.to_csv(filepath)
При помощи модуля os
:
>>> import os >>> os.makedirs('folder/subfolder', exist_ok=True) >>> df.to_csv('folder/subfolder/out.csv')