将pandas DataFrame保存在一组h5py中供以后使用

时间:2016-09-09 22:34:08

标签: pandas h5py

我想将pandas DataFrame对象附加到现有的h5py文件中,无论是作为子组还是数据集,都包含所有索引和标头信息。那可能吗?我尝试了以下方法:

import pandas as pd
import h5py
f = h5py.File('f.h5', 'r+')
df = pd.DataFrame([[1,2,3],[4,5,6]], columns=['A', 'B', 'C'], index=['X', 'Y'])
f['df'] = df

在其他脚本中,我想访问f.h5,但f['df'][()]的输出为array([[1, 2, 3],[4, 5, 6]]),但不包含标题信息。

1 个答案:

答案 0 :(得分:1)

如果您没有绑定pd.DataFrame.to_hdf()

,可以尝试使用Pandas pd.read_hdf()h5py

文档:http://pandas.pydata.org/pandas-docs/stable/io.html#io-hdf5

要写入h5文件:

df = pd.DataFrame([[1,2,3],[4,5,6]], 
                  columns=['A', 'B', 'C'], index=['X', 'Y'])

df.to_hdf('f.h5', 'table',append=True)

然后你可以阅读:

df2 = pd.read_hdf('f.h5', 'table')
print(df2)

   A  B  C
X  1  2  3
Y  4  5  6

你也可以追加

df2.to_hdf('f.h5', 'table', append=True)

pd.read_hdf('f.h5', 'table')

   A  B  C
X  1  2  3
Y  4  5  6
X  1  2  3
Y  4  5  6