【问题标题】:How to read HDF table from pandas?如何从熊猫中读取 HDF 表?
【发布时间】:2013-04-16 14:38:20
【问题描述】:

我有一个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 格式的数据)吗?

【问题讨论】:

    标签: python io pandas hdf5


    【解决方案1】:

    在你的/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。

    【讨论】:

    • 您至少需要 0.10.1(现在 0.11 已经发布),要读取非熊猫创建的 HDF5 表,您可以通过 ptdump -avd file.h5 进行检查
    【解决方案2】:

    我有一个 h5 表。使用独立于 pandas 的 pytables 制作,需要将其转换为元组列表,然后将其导入 df。这很好,因为它允许我利用我的 pytables 索引在输入上运行“位置”。这可以节省我阅读所有行的时间。

    【讨论】:

      猜你喜欢
      • 2020-12-30
      • 2018-03-11
      • 2013-03-23
      • 2015-11-30
      • 2015-03-24
      • 2019-10-09
      • 1970-01-01
      • 1970-01-01
      • 2022-12-05
      相关资源
      最近更新 更多