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