pandas.DataFrame.to_csv#
- 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)[源代码]#
将对象写入逗号分隔值(csv)文件。
- Parameters:
- path_or_bufstr, path object, file-like object, or None, default None
字符串、路径对象(实现 os.PathLike[str])或实现 write() 函数的类文件对象。如果为 None,则结果将作为字符串返回。如果传递了非二进制文件对象,则应使用 newline=’’ 打开它,这将禁用通用换行符。如果传递了二进制文件对象,则 mode 可能需要包含 ‘b’。
- sepstr, default ‘,’
长度为 1 的字符串。输出文件的字段分隔符。
- na_repstr, default ‘’
缺失数据表示。
- float_formatstr, Callable, default None
浮点数的格式字符串。如果给定了 Callable,它将优先于其他数字格式化参数(如 decimal)。
- columnssequence, optional
要写入的列。
- headerbool or list of str, default True
写入列名。如果给出了字符串列表,则假定它们是列名的别名。
- indexbool, default True
写入行名(索引)。
- index_labelstr or sequence, or False, default None
如果需要,索引列的列标签。如果为 None,并且 header 和 index 都为 True,则使用索引名称。如果对象使用 MultiIndex,则应给出序列。如果为 False,则不打印索引名称的字段。使用 index_label=False 可以更轻松地在 R 中导入。
- mode{‘w’, ‘x’, ‘a’}, default ‘w’
转发给 open(mode=) 或 fsspec.open(mode=) 以控制文件打开。典型值包括:
‘w’,先截断文件。
‘x’,独占创建,如果文件已存在则失败。
‘a’,如果文件存在,则追加到文件末尾。
- encodingbool, default False
一个表示输出文件编码的字符串,默认为 ‘utf-8’。如果 path_or_buf 是非二进制文件对象,则不支持 encoding。
- compressionstr or dict, default ‘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’,支持将压缩选项作为字典中的键传递。
- quotingcsv 模块中的可选常量
默认为 csv.QUOTE_MINIMAL。如果设置了 float_format,则浮点数会被转换为字符串,因此 csv.QUOTE_NONNUMERIC 会将它们视为非数字。
- quotechar : str, 默认为 ‘"’str, 默认为 ‘"’
长度为 1 的字符串。用于引用字段的字符。
- lineterminatorbool, default False
输出文件中使用的换行符或字符序列。默认为 os.linesep,这取决于调用此方法的操作系统(Linux 为 ‘\n’,Windows 为 ‘\r\n’,依此类推)。
在 1.5.0 版本发生变更: (之前是 line_terminator,为与 read_csv 和标准库 ‘csv’ 模块保持一致而更改。)
- chunksizeint 或 None
一次写入的行数。
- date_formatstr,默认 None
datetime 对象的格式字符串。
- doublequotebool, default True
控制字段内 quotechar 的引用方式。
- escapecharstr,默认 None
长度为 1 的字符串。在适当的时候用于转义 sep 和 quotechar 的字符。
- decimalstr, 默认为 ‘.’
被识别为小数分隔符的字符。例如,对于欧洲数据使用 ‘,’。
- errorsstr, 默认为 ‘strict’
指定如何处理编码和解码错误。有关选项的完整列表,请参阅
open()的 errors 参数。- storage_optionsdict, 可选
适用于特定存储连接的额外选项,例如主机、端口、用户名、密码等。对于 HTTP(S) URL,键值对将作为标头选项转发给
urllib.request.Request。对于其他 URL(例如,以 “s3://”, 和 “gcs://” 开头的 URL),键值对将转发给fsspec.open。更多详情请参阅fsspec和urllib,有关存储选项的更多示例,请参阅 here 。
- Returns:
- None 或 str
如果 path_or_buf 为 None,则返回生成的 csv 格式为字符串。否则返回 None。
Examples
创建不带索引的 ‘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')