pandas.Series.to_csv#

Series.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_bufstr, 路径对象, 类文件对象, 或 None, 默认 None

字符串、实现 os.PathLike[str] 的路径对象,或实现 write() 函数的类文件对象。如果为 None,结果将作为字符串返回。如果传递的是非二进制文件对象,应使用 newline=’’ 打开,禁用通用换行符。如果传递的是二进制文件对象,mode 可能需要包含 ‘b’

sepstr, 默认 ‘,’

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

na_repstr, 默认 ‘’

缺失数据表示。

float_formatstr, Callable, 默认 None

浮点数的格式字符串。如果给定一个可调用对象,它优先于其他数值格式参数,如小数。

序列, 可选

要写入的列。

标题bool 或 str 列表, 默认 True

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

索引布尔值, 默认为 True

写入行名(索引)。

index_labelstr 或序列,或 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 是一个非二进制文件对象,则不支持 encoding

压缩str 或 dict,默认 ‘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.LZMAFiletarfile.TarFile,分别。例如,以下内容可以传递以实现更快的压缩并创建可复现的 gzip 存档:compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}

Added in version 1.5.0: 增加了对 .tar 文件的支持。

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

在字典中将压缩选项作为键传递,支持的压缩模式有 ‘gzip’, ‘bz2’, ‘zstd’, 和 ‘zip’。

引用来自csv模块的可选常量

默认为 csv.QUOTE_MINIMAL。如果你设置了一个 float_format,那么浮点数会被转换为字符串,因此 csv.QUOTE_NONNUMERIC 会将它们视为非数字。

quotechar : str, 默认 ‘”’str, 默认 ‘”’

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

lineterminatorstr, 可选

在输出文件中使用的新行字符或字符序列。默认为 os.linesep,这取决于调用此方法的操作系统(Linux 为 ‘n’,Windows 为 ‘rn’,即)。

在 1.5.0 版本发生变更: 之前是 line_terminator,为了与 read_csv 和标准库 ‘csv’ 模块保持一致而更改。

chunksize整数或无

一次写入的行数。

date_formatstr, 默认 None

用于 datetime 对象的格式字符串。

双引号布尔值, 默认为 True

控制字段内 quotechar 的引用。

escapecharstr, 默认 None

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

decimalstr, 默认 ‘.’

识别为小数分隔符的字符。例如,使用 ‘,’ 表示欧洲数据。

错误str, 默认 ‘strict’

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

storage_optionsdict, 可选

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

返回:
无或字符串

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

参见

read_csv

将 CSV 文件加载到 DataFrame 中。

to_excel

将 DataFrame 写入 Excel 文件。

示例

创建包含 ‘df’ 的 ‘out.csv’ 文件,不带索引

>>> df = pd.DataFrame(
...     [["Raphael", "red", "sai"], ["Donatello", "purple", "bo staff"]],
...     columns=["name", "mask", "weapon"],
... )
>>> 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")