如何从熊猫中读取HDF表?

时间:2013-04-23 11:36:50

标签: python io pandas hdf5

我有一个my_file.h5文件,可能包含HDF5格式的数据(PyTables)。我尝试使用pandas读取此文件:

import pandas as pd
store = pd.HDFStore('my_file.h5')

然后我尝试使用store对象:

print store

结果我得到了:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/pymodules/python2.7/pandas/io/pytables.py", line 133, in __repr__
    kind = v._v_attrs.pandas_type
  File "/usr/lib/python2.7/dist-packages/tables/attributeset.py", line 302, in __getattr__
    (name, self._v__nodePath)
AttributeError: Attribute 'pandas_type' does not exist in node: '/data'

有人知道我做错了什么吗?我的*.h5不是我认为的那样(不是hdf5格式的数据),这可能是问题造成的吗?

2 个答案:

答案 0 :(得分:3)

/usr/lib/pymodules/python2.7/pandas/io/pytables.py第133行

kind = v._v_attrs.pandas_type

pytables.py我看到

kind = getattr(n._v_attrs,'pandas_type',None)

使用getattr,如果没有pandas_type属性,则kind设置为None。我在猜我的Pandas版本

In [7]: import pandas as pd

In [8]: pd.__version__
Out[8]: '0.10.0'

比你的新。如果是,则修复方法是升级您的pandas

答案 1 :(得分:2)

我有一张h5桌子。使用独立于pandas的pytables制作并需要将其转换为元组列表然后将其导入df。这很好听,因为它允许我利用我的pytables索引在输入上运行“where”。这节省了我读取所有行。