pandas.DataFrame.to_hdf#

DataFrame.to_hdf(path_or_buf, *, key, mode='a', complevel=None, complib=None, append=False, format=None, index=True, min_itemsize=None, nan_rep=None, dropna=None, data_columns=None, errors='strict', encoding='UTF-8')[源代码]#

使用 HDFStore 将包含的数据写入 HDF5 文件。

分层数据格式 (HDF) 是自描述的,允许应用程序在没有外部信息的情况下解释文件的结构和内容。一个 HDF 文件可以包含混合的相关对象,这些对象可以作为一个组或作为单个对象被访问。

为了将另一个 DataFrame 或 Series 添加到现有的 HDF 文件中,请使用追加模式和不同的 key。

警告

可以将 DataFrameSeries 的子类存储到 HDF5 中,但子类的类型在存储时会丢失。

有关更多信息,请参阅 用户指南

参数:
path_or_bufstr 或 pandas.HDFStore

文件路径或 HDFStore 对象。

keystr

商店中组的标识符。

mode{‘a’, ‘w’, ‘r+’}, 默认 ‘a’

打开文件的模式

  • ‘w’: 写入,创建一个新文件 (具有相同名称的现有文件将被删除)。

  • ‘a’: 追加,打开现有文件进行读写,如果文件不存在则创建。

  • ‘r+’: 类似于 ‘a’,但文件必须已存在。

complevel{0-9}, 默认 None

指定数据的压缩级别。值为 0 或 None 时禁用压缩。

complib{‘zlib’, ‘lzo’, ‘bzip2’, ‘blosc’}, 默认 ‘zlib’

指定要使用的压缩库。Blosc 支持以下额外的压缩器 (如果没有指定压缩器,则默认为 ‘blosc:blosclz’): {‘blosc:blosclz’, ‘blosc:lz4’, ‘blosc:lz4hc’, ‘blosc:snappy’, ‘blosc:zlib’, ‘blosc:zstd’}。指定不存在的压缩库将引发 ValueError。

appendbool, 默认 False

对于 Table 格式,将输入数据追加到现有数据中。

format{‘fixed’, ‘table’, None}, 默认 ‘fixed’

可能的值

  • ‘fixed’: 固定格式。快速写入/读取。不可追加,也不可搜索。

  • ‘table’: 表格格式。作为 PyTables 表结构写入,这可能性能较差,但允许更灵活的操作,如搜索/选择数据子集。

  • 如果为 None,则检查 pd.get_option(‘io.hdf.default_format’),然后回退到“fixed”。

indexbool, 默认 True

将 DataFrame 索引写为一列。

min_itemsizedict 或 int, 可选

将列名映射到列的最小字符串大小。

nan_rep任意, 可选

如何将 null 值表示为字符串。不允许与 append=True 一起使用。

dropnabool, 默认 False, 可选

删除缺失值。

data_columns列的列表或 True, 可选

用于在磁盘查询的索引数据列的列的列表,或 True 以使用所有列。默认情况下,仅索引对象的轴。有关更多信息,请参阅 通过数据列查询。仅适用于 format=’table’。

errorsstr, 默认 ‘strict’

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

encodingstr, 默认 “UTF-8”

设置字符编码。

另请参阅

read_hdf

从 HDF 文件读取。

DataFrame.to_orc

将 DataFrame 写入二进制 orc 格式。

DataFrame.to_parquet

将 DataFrame 写入二进制 parquet 格式。

DataFrame.to_sql

写入 SQL 表。

DataFrame.to_feather

将 DataFrame 写入 feather 格式。

DataFrame.to_csv

写入 csv 文件。

示例

>>> df = pd.DataFrame(
...     {"A": [1, 2, 3], "B": [4, 5, 6]}, index=["a", "b", "c"]
... )
>>> df.to_hdf("data.h5", key="df", mode="w")

我们可以将另一个对象添加到同一个文件中

>>> s = pd.Series([1, 2, 3, 4])
>>> s.to_hdf("data.h5", key="s")

从 HDF 文件读取

>>> pd.read_hdf("data.h5", "df")
A  B
a  1  4
b  2  5
c  3  6
>>> pd.read_hdf("data.h5", "s")
0    1
1    2
2    3
3    4
dtype: int64