gpt4 book ai didi

python - HDFStore 更新存储的 HDF5 python pandas 数据帧

转载 作者:行者123 更新时间:2023-11-28 18:21:03 24 4
gpt4 key购买 nike

我有两个数据帧,df1 存储在 pd.HDFStore 对象中,另一个要附加到数据帧。

store = pd.HDFStore('dataframe_store.h5')

df1 = pd.DataFrame(np.empty((100, 5)))
df2 = pd.DataFrame(np.empty((100, 5)))

store['df1'] = df1

实际上,我希望最终结果等于...

store['df1'] = df1.append(df2)

我想将 df2 附加到存储的 df1,而不是用新数据帧完全覆盖 HDFStore 对象。这可能吗?

此外,当我运行以下代码时,我返回 ValueError can only append to Tables...这是为什么?

df = pd.DataFrame(np.empty((1000, 5)))
df2 = pd.DataFrame(np.empty((1000, 5)))

store = pd.HDFStore('store.h5')

store['df'] = df

store.append('df', df2)

最佳答案

根据 the docs (我的重点):

HDFStore supports another PyTables format on disk, the table format. Conceptually a table is shaped very much like a DataFrame, with rows and columns. A table may be appended to in the same or other sessions. In addition, delete & query type operations are supported. This format is specified by format='table' or format='t' to append or put or to_hdf

New in version 0.13.

This format can be set as an option as well pd.set_option('io.hdf.default_format','table') to enable put/append/to_hdf to by default store in the table format.

In [361]: store = pd.HDFStore('store.h5')

In [362]: df1 = df[0:4]

In [363]: df2 = df[4:]

# append data (creates a table automatically)
In [364]: store.append('df', df1)

In [365]: store.append('df', df2)

In [366]: store
Out[366]:
<class 'pandas.io.pytables.HDFStore'>
File path: store.h5

# select the entire object
In [367]: store.select('df')
Out[367]:
A B C
2000-01-01 0.887163 0.859588 -0.636524
2000-01-02 0.015696 -2.242685 1.150036
2000-01-03 0.991946 0.953324 -2.021255
2000-01-04 -0.334077 0.002118 0.405453
2000-01-05 0.289092 1.321158 -1.546906
2000-01-06 -0.202646 -0.655969 0.193421
2000-01-07 0.553439 1.318152 -0.469305
2000-01-08 0.675554 -1.817027 -0.183109

# the type of stored data
In [368]: store.root.df._v_attrs.pandas_type
Out[368]: 'frame_table'

Note: You can also create a table by passing format='table' or format='t' to a put operation.

关于python - HDFStore 更新存储的 HDF5 python pandas 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44986027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com