pandas.DataFrame.to_parquet#

DataFrame.to_parquet(path=None, *, engine='auto', compression='snappy', index=None, partition_cols=None, storage_options=None, **kwargs)[源代码]#

将 DataFrame 写入二进制 parquet 格式。

该函数将 DataFrame 写入 parquet file 。您可以选择不同的 parquet 后端,并可以选择压缩。有关更多详细信息,请参阅 the user guide

Parameters:
pathstr, path object, file-like object, or None, default None

字符串、路径对象(实现 os.PathLike[str])或实现二进制 write() 函数的文件类对象。如果为 None,则结果将作为字节数返回。如果为字符串或路径,则在写入分区数据集时将用作根目录路径。

engine{‘auto’, ‘pyarrow’, ‘fastparquet’},默认值为 ‘auto’

要使用的 Parquet 库。如果为 ‘auto’,则使用选项 io.parquet.engine。默认的 io.parquet.engine 行为是尝试 ‘pyarrow’,如果 ‘pyarrow’ 不可用则回退到 ‘fastparquet’。

compressionstr 或 None,默认值为 ‘snappy’

要使用的压缩名称。使用 None 表示不压缩。支持的选项:’snappy’、’gzip’、’brotli’、’lz4’、’zstd’。

index布尔值,默认为 None

如果为 True,则将 DataFrame 的索引包含在文件输出中。如果为 False,则不会将其写入文件。如果为 None,与 True 类似,DataFrame 的索引将被保存。但是,RangeIndex 将作为元数据中的范围存储,而不是作为值存储,因此不需要太多空间,并且速度更快。其他索引将作为列包含在文件输出中。

partition_cols列表,可选,默认值为 None

用于分区数据集的列名。列的顺序与给定顺序一致。如果 path 不是字符串,则必须为 None。

storage_optionsdict, 可选

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

**kwargs

传递给 parquet 库的附加参数。有关更多详细信息,请参阅 pandas io

Returns:
如果未提供 path 参数,则为 bytes,否则为 None

参见

read_parquet

读取 parquet 文件。

DataFrame.to_orc

写入 orc 文件。

DataFrame.to_csv

写入 csv 文件。

DataFrame.to_sql

写入 sql 表。

DataFrame.to_hdf

写入 hdf。

Notes

此函数需要 fastparquetpyarrow 库。

Examples

>>> df = pd.DataFrame(data={'col1': [1, 2], 'col2': [3, 4]})
>>> df.to_parquet('df.parquet.gzip',
...               compression='gzip')  
>>> pd.read_parquet('df.parquet.gzip')  
   col1  col2
0     1     3
1     2     4

如果您想获取 parquet 内容的缓冲区,可以使用 io.BytesIO 对象,只要您不使用 partition_cols,因为 partition_cols 会创建多个文件。

>>> import io
>>> f = io.BytesIO()
>>> df.to_parquet(f)
>>> f.seek(0)
0
>>> content = f.read()