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
如果需要,索引列的列标签。如果没有给出,并且 header 和 index 为 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.LZMAFile
或tarfile.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的字符串。用于在适当时候转义 sep 和 quotechar 的字符。
- decimalstr, 默认 ‘.’
识别为小数分隔符的字符。例如,使用 ‘,’ 表示欧洲数据。
- 错误str, 默认 ‘strict’
指定如何处理编码和解码错误。有关完整的选项列表,请参见
open()
的 errors 参数。- storage_optionsdict, 可选
对于特定存储连接有意义的额外选项,例如主机、端口、用户名、密码等。对于HTTP(S) URL,键值对会作为头选项转发到
urllib.request.Request
。对于其他URL(例如以“s3://”和“gcs://”开头),键值对会转发到fsspec.open
。请参阅fsspec
和urllib
获取更多详细信息,关于存储选项的更多示例请参考 这里。
- 返回:
- 无或字符串
如果 path_or_buf 是 None,则返回生成的 csv 格式为字符串。否则返回 None。
示例
创建包含 ‘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")