gpt4 book ai didi

python - 将多个具有层次结构的 pd.DataFrame 保存到 hdf5

转载 作者:行者123 更新时间:2023-11-30 22:23:00 28 4
gpt4 key购买 nike

我有多个具有分层组织的 pd.DataFrame。假设我有:

day_temperature_london_df = pd.DataFrame(...)
night_temperature_london_df = pd.DataFrame(...)

day_temperature_paris_df = pd.DataFrame(...)
night_temperature_paris_df = pd.DataFrame(...)

我想将它们分组到 hdf5 文件中,以便其中两个进入“伦敦”组,另外两个进入“巴黎”组。

如果我使用 h5py,我会丢失 pd.DataFrame 的格式,丢失索引和列。

f = h5py.File("temperature.h5", "w")
grp_london = f.create_group("london")
day_lon_dset = grp_london.create_dataset("day", data=day_temperature_london_df)
print day_lon_dset[...]

这给了我一个 numpy 数组。有没有一种方法可以像 .to_hdf 一样存储许多具有层次结构的数据帧 - 它保留数据帧的所有属性?

最佳答案

我比 pandas 更熟悉 numpyh5py。但我能够创建:

In [85]: store = pd.HDFStore('store.h5')
In [86]: store.root
Out[86]:
/ (RootGroup) ''
children := []
In [87]: store['df1']=df1
In [88]: store['group/df1']=df1
In [89]: store['group/df2']=df2

可以重新加载和查看:

In [95]: store
Out[95]:
<class 'pandas.io.pytables.HDFStore'>
File path: store.h5
/df1 frame (shape->[3,4])
/group/df1 frame (shape->[3,4])
/group/df2 frame (shape->[5,6])

In [96]: store.root
Out[96]:
/ (RootGroup) ''
children := ['df1' (Group), 'group' (Group)]

store._handle 显示详细的文件结构。

在 shell 中,我还可以使用以下命令查看该文件:

1431:~/mypy$ h5dump store.h5 |less

以下:

how should i use h5py lib for storing time series data

In [4]: f1 = h5py.File('store.h5')
In [5]: list(f1.keys())
Out[5]: ['df1', 'group']
In [6]: list(f1['df1'].keys())
Out[6]: ['axis0', 'axis1', 'block0_items', 'block0_values']

In [10]: list(f1['group'].keys())
Out[10]: ['df1', 'df2']
In [11]: list(f1['group/df1'].keys())
Out[11]: ['axis0', 'axis1', 'block0_items', 'block0_values']
In [12]: list(f1['group/df2'].keys())
Out[12]: ['axis0', 'axis1', 'block0_items', 'block0_values']

因此“group/df2”键相当于组的层次结构:

In [13]: gp = f1['group']
In [15]: gp['df2']['axis0']
Out[15]: <HDF5 dataset "axis0": shape (6,), type "<i8">
[17]: f1['group/df2/axis0']
Out[17]: <HDF5 dataset "axis0": shape (6,), type "<i8">

我们必须深入研究 HDFStorePytables 的文档或代码,看看它们是否具有与 create_group 等效的功能。

关于python - 将多个具有层次结构的 pd.DataFrame 保存到 hdf5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48172863/

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