polars.DataFrame.write_csv#

DataFrame.write_csv(
file: str | Path | IO[str] | IO[bytes] | None = None,
*,
include_bom: bool = False,
include_header: bool = True,
separator: str = ',',
line_terminator: str = '\n',
quote_char: str = '"',
batch_size: int = 1024,
datetime_format: str | None = None,
date_format: str | None = None,
time_format: str | None = None,
float_scientific: bool | None = None,
float_precision: int | None = None,
null_value: str | None = None,
quote_style: CsvQuoteStyle | None = None,
storage_options: dict[str, Any] | None = None,
credential_provider: CredentialProviderFunction | Literal['auto'] | None = 'auto',
retries: int = 2,
) str | None[source]#

写入逗号分隔值(CSV)文件。

Parameters:
file

文件路径或可写的类文件对象,结果将被写入其中。 如果设置为None(默认值),则输出将作为字符串返回。

include_bom

是否在CSV输出中包含UTF-8 BOM。

include_header

是否在CSV输出中包含标题。

separator

用此符号分隔CSV字段。

line_terminator

用于结束每一行的字符串。

quote_char

用作引用字符的字节。

batch_size

每个线程将处理的行数。

datetime_format

一个格式字符串,使用由 chrono Rust crate 定义的说明符。如果未指定格式,则默认的分数秒精度将从帧的Datetime列中找到的最大时间单位推断(如果有的话)。

date_format

一个格式字符串,使用由 chrono Rust crate 定义的说明符。

time_format

一个格式字符串,使用由 chrono Rust crate 定义的说明符。

float_scientific

是否始终使用科学计数法(true),从不使用(false),或自动选择(None)用于Float32Float64数据类型。

float_precision

要写入的小数位数,适用于Float32Float64数据类型。

null_value

表示空值的字符串(默认为空字符串)。

quote_style{‘necessary’, ‘always’, ‘non_numeric’, ‘never’}

确定使用的引用策略。

  • 必要的(默认):仅在必要时在字段周围加上引号。当字段包含引号、分隔符或记录终止符时,引号是必要的。在写入空记录时(这与具有一个空字段的记录无法区分),引号也是必要的。这是默认设置。

  • always: 这会在每个字段周围加上引号。总是如此。

  • never: 这永远不会在字段周围加上引号,即使这会导致无效的CSV数据(例如:不引用包含分隔符的字符串)。

  • non_numeric: 这会在所有非数字字段周围加上引号。 也就是说,当写入一个无法解析为有效浮点数 或整数的字段时,即使严格来说不需要,也会使用引号。

storage_options

指示如何连接到云提供商的选项。

目前支持的云提供商有AWS、GCP和Azure。 查看支持的密钥请点击这里:

  • aws

  • gcp

  • azure

  • Hugging Face (hf://): 接受在 token 参数下的 API 密钥:{'token': '...'},或者通过设置 HF_TOKEN 环境变量。

如果未提供storage_options,Polars将尝试从环境变量中推断信息。

credential_provider

提供一个可以被调用的函数来提供云存储凭证。该函数预期返回一个包含凭证键的字典以及一个可选的凭证过期时间。

警告

此功能被视为不稳定。它可能会在任何时候更改,而不被视为破坏性更改。

retries

如果访问云实例失败,重试次数。

示例

>>> import pathlib
>>>
>>> df = pl.DataFrame(
...     {
...         "foo": [1, 2, 3, 4, 5],
...         "bar": [6, 7, 8, 9, 10],
...         "ham": ["a", "b", "c", "d", "e"],
...     }
... )
>>> path: pathlib.Path = dirpath / "new_file.csv"
>>> df.write_csv(path, separator=",")