pandas.DataFrame.to_csv #

数据框。to_csv ( path_or_buf = None , * , sep = ',' , na_rep = '' , float_format = None , columns = None , header = True , index = True , index_label = None , mode = 'w' ,编码= None ,压缩= 'infer'引用= None quotechar = '"' lineterminator = None chunksize = None date_format = None双引号= True escapechar = None小数= '.' error = 'strict' storage_options = None[来源]

将对象写入逗号分隔值 (csv) 文件。

参数
path_or_buf str,路径对象,类文件对象,或 None,默认 None

字符串、路径对象(实现 os.PathLike[str])或实现 write() 函数的类文件对象。如果没有,则结果以字符串形式返回。如果传递非二进制文件对象,则应使用newline=''打开它,禁用通用换行符。如果传递二进制文件对象,模式可能需要包含'b'

sep str,默认 ','

长度为 1 的字符串。输出文件的字段分隔符。

na_rep str,默认 ''

缺少数据表示。

float_format str,可调用,默认 None

浮点数的格式字符串。如果给出了 Callable,它优先于其他数字格式化参数,例如十进制。

顺序,可选

要写的专栏。

header bool 或 str 列表,默认 True

写出列名称。如果给出了字符串列表,则假定它是列名称的别名。

索引bool,默认 True

写入行名称(索引)。

index_label str 或序列,或 False,默认 None

如果需要,索引列的列标签。如果没有给出,并且 headerindex为 True,则使用索引名称。如果对象使用 MultiIndex,则应给出序列。如果为 False,则不打印索引名称字段。使用index_label=False 可以更轻松地在 R 中导入。

模式{'w', 'x', 'a'}, 默认 'w'

转发到open(mode=)fsspec.open(mode=)来控制文件打开。典型值包括:

  • 'w',首先截断文件。

  • 'x',独占创建,如果文件已存在则失败。

  • 'a',追加到文件末尾(如果存在)。

编码str,可选

表示输出文件中使用的编码的字符串,默认为“utf-8”。如果path_or_buf 是非二进制文件对象,则不支持编码。

压缩str 或 dict,默认 'infer'

用于输出数据的动态压缩。如果“infer”和“path_or_buf”是类似路径,则检测以下扩展名的压缩:“.gz”、“.bz2”、“.zip”、“.xz”、“.zst”、“.tar” 、“.tar.gz”、“.tar.xz”或“.tar.bz2”(否则不压缩)。设置None为不压缩。也可以是键设置为 { , , , , , }'method'之一的字典,其他键值对分别转发到 , , , ,或 。例如,可以传递以下内容以加快压缩速度并创建可重现的 gzip 存档: .'zip''gzip''bz2''zstd''xz''tar'zipfile.ZipFilegzip.GzipFilebz2.BZ2Filezstandard.ZstdCompressorlzma.LZMAFiletarfile.TarFilecompression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}

1.5.0 版本中的新增功能:添加了对.tar文件的支持。

如果压缩模式为“zip”,则可能是一个字典,其中键“method”作为压缩模式,其他条目作为附加压缩选项。

压缩模式“gzip”、“bz2”、“zstd”和“zip”支持将压缩选项作为 dict 中的键传递。

从 csv 模块引用可选常量

默认为 csv.QUOTE_MINIMAL。如果您设置了float_format ,则浮点数将转换为字符串,因此 csv.QUOTE_NONNUMERIC 会将它们视为非数字。

quotechar str,默认 '"'

长度为 1 的字符串。用于引用字段的字符。

行终止符str,可选

要在输出文件中使用的换行符或字符序列。默认为os.linesep,这取决于调用此方法的操作系统(对于 Linux 为 '\n',对于 Windows 为 '\r\n')。

在版本 1.5.0 中进行了更改:以前是 line_terminator,为了与 read_csv 和标准库“csv”模块保持一致而进行了更改。

chunksize int 或 None

一次写入的行。

date_format str,默认无

日期时间对象的格式字符串。

双引号bool,默认 True

控制字段内quotechar的引用。

escapechar str,默认无

长度为 1 的字符串。适当时用于转义sepquotechar 的字符。

十进制str,默认 '.'

被识别为小数点分隔符的字符。例如,使用“,”表示欧洲数据。

错误str,默认“严格”

指定如何处理编码和解码错误。open()有关选项的完整列表,请参阅错误参数。

storage_options字典,可选

对于特定存储连接有意义的额外选项,例如主机、端口、用户名、密码等。对于 HTTP(S) URL,键值对将urllib.request.Request作为标头选项转发。对于其他 URL(例如以“s3://”和“gcs://”开头),键值对将转发到fsspec.open。请参阅fsspecurllib了解更多详细信息,有关存储选项的更多示例,请参阅此处

返回
无或 str

如果 path_or_buf 为 None,则以字符串形式返回生成的 csv 格式。否则返回 None。

也可以看看

read_csv

将 CSV 文件加载到 DataFrame 中。

to_excel

将 DataFrame 写入 Excel 文件。

例子

创建包含“df”但不带索引的“out.csv”

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

创建包含“out.csv”的“out.zip”

>>> 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')