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。更多详情请参阅fsspec和urllib,有关存储选项的更多示例,请参阅 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
此函数需要 fastparquet 或 pyarrow 库。
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()