我正在尝试将Pandas数据帧中的数据写入嵌套的hdf5文件中,其中每个组和数据集都有多个。我想将其保持为单个文件,并且文件将在未来每天增长。我已经尝试了以下代码,它展示了我想要实现的结构。
但是没有起作用,我收到了这个错误
AttributeError: 'Dataset'对象没有'split'属性
请问有谁能帮忙解决一下吗?非常感谢。
import h5py
import numpy as np
import pandas as pd
file = h5py.File('database.h5','w')
d = {'one' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
'two' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
groups = ['A','B','C']
for m in groups:
group = file.create_group(m)
dataset = ['1','2','3']
for n in dataset:
data = df
ds = group.create_dataset(m + n, data.shape)
print ("Dataset dataspace is", ds.shape)
print ("Dataset Numpy datatype is", ds.dtype)
print ("Dataset name is", ds.name)
print ("Dataset is a member of the group", ds.parent)
print ("Dataset was created in the file", ds.file)
print ("Writing data...")
ds[...] = data
print ("Reading data back...")
data_read = ds[...]
print ("Printing data...")
print (data_read)
file.close()
这样创建了嵌套结构,但是它失去了索引和列。我已经尝试过
df.to_hdf('database.h5', ds, table=True, mode='a')
但是没有起作用,我收到了这个错误
AttributeError: 'Dataset'对象没有'split'属性
请问有谁能帮忙解决一下吗?非常感谢。
pandas
使用pytables
将数据帧写入hdf5
文件。有一些 Stack Overflow 的问题涉及到如何使用h5py
访问这些文件。 据我回忆,文件的布局是复杂的,但并不难以理解。h5py
本质上是numpy
对hdf5
的接口。 - hpaulj