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)文件。
- 参数
- path_or_buf字符串、路径对象、类似文件的对象或无,默认为无
字符串、路径对象(实现os.PathLike [str] )或实现WRITE()函数的类似文件的对象。如果没有,则以字符串形式返回结果。如果传递了非二进制文件对象,则应使用 newline='' ,禁用通用换行符。如果传递了二进制文件对象, mode 可能需要包含一个 'b' 。
在 1.2.0 版更改: 引入了对二进制文件对象的支持。
- sep字符串,默认‘,’
长度为1的字符串。输出文件的字段分隔符。
- na_rep字符串,默认为‘’
缺少数据表示形式。
- float_format字符串,默认为无
浮点数的格式字符串。
- columns序列,可选
要写入的列。
- headerBool或字符串列表,默认为True
写出列名。如果给定一个字符串列表,则假定它是列名的别名。
- index布尔值,默认为True
写入行名(索引)。
- index_label字符串或序列,或FALSE,默认为无
索引列的列标签(如果需要)。如果没有给出,并且 header 和 index 为True,则使用索引名称。如果对象使用多索引,则应给出一个序列。如果为False,则不打印索引名称的字段。使用INDEX_LABEL=FALSE可更轻松地在R中导入。
- mode应力
Python写入模式,默认为‘w’。
- encoding字符串,可选
表示要在输出文件中使用的编码的字符串,默认为‘utf-8’。 encoding 如果出现以下情况,则不支持 path_or_buf 是非二进制文件对象。
- compression字符串或词典,默认为‘INFER’
For on-the-fly compression of the output data. If 'infer' and '%s' path-like, then detect compression from the following extensions: '.gz', '.bz2', '.zip', '.xz', or '.zst' (otherwise no compression). Set to
None
for no compression. Can also be a dict with key'method'
set to one of {'zip'
,'gzip'
,'bz2'
,'zstd'
} and other key-value pairs are forwarded tozipfile.ZipFile
,gzip.GzipFile
,bz2.BZ2File
, orzstandard.ZstdDecompressor
, respectively. As an example, the following could be passed for faster compression and to create a reproducible gzip archive:compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}
.在 1.0.0 版更改: 现在可以是一个DICT,如果压缩模式是‘ZIP’,则将关键字‘方法’作为压缩模式,并将其他条目作为额外的压缩选项。
在 1.1.0 版更改: 压缩模式‘gZIP’、‘bz2’、‘zstd’和‘Zip’支持将压缩选项作为DICT中的键传递。
在 1.2.0 版更改: 二进制文件对象支持压缩。
在 1.2.0 版更改: 以前的版本将‘gzip’的词典条目转发到 gzip.open 而不是 gzip.GzipFile 这阻止了设置 mtime 。
- quotingCSV模块中的可选常量
默认为csv.QUOTE_MINIMAL。如果您设置了 float_format 然后将浮点数转换为字符串,因此csv.QUOTE_NONNUMERIC会将它们视为非数字。
- 报价费 :字符串,默认‘“’字符串,默认‘“’
长度为1的字符串。用于引用字段的字符。
- lineterminator字符串,可选
要在输出文件中使用的换行符或字符序列。默认为 os.linesep ,这取决于调用此方法的操作系统(对于Linux为‘\n’,对于Windows为‘\r\n’)。
在 1.5.0 版更改: 以前是line_Terminator,为了与Read_CSV和标准库‘CSV’模块一致而进行了更改。
- chunksize整型或无
一次写入的行。
- date_format字符串,默认为无
DateTime对象的格式字符串。
- doublequote布尔值,默认为True
控制报价 quotechar 在田野里。
- escapechar字符串,默认为无
长度为1的字符串。用于转义的字符 sep 和 quotechar 在适当的时候。
- decimal字符串,默认为‘.’
识别为小数分隔符的字符。例如,使用‘,’表示欧洲数据。
- errors字符串,默认为‘Strong’
指定如何处理编码和解码错误。请参阅的错误参数
open()
查看完整的选项列表。1.1.0 新版功能.
- storage_optionsDICT,可选
对特定存储连接有意义的额外选项,例如主机、端口、用户名、密码等。对于HTTP(S)URL,键-值对被转发到
urllib.request.Request
作为标题选项。对于其他URL(例如,以“s3://”和“gcs://”开头),键-值对被转发到fsspec.open
。请看fsspec
和urllib
有关更多详细信息和有关存储选项的更多示例,请参阅 here 。1.2.0 新版功能.
- 退货
- 无或字符串
如果PATH_OR_BUF为NONE,则以字符串形式返回结果CSV格式。否则返回None。
示例
>>> df = pd.DataFrame({'name': ['Raphael', 'Donatello'], ... 'mask': ['red', 'purple'], ... 'weapon': ['sai', 'bo staff']}) >>> df.to_csv(index=False) 'name,mask,weapon\nRaphael,red,sai\nDonatello,purple,bo staff\n'
创建包含‘out.csv’的‘out.zip’
>>> 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')