【发布时间】:2019-06-10 03:03:00
【问题描述】:
运行时
pd.read_hdf('myfile.h5')
我收到以下回溯错误:
[[...一些更长的回溯]]
~/.local/lib/python3.6/site-packages/pandas/io/pytables.py 在 read_array(self, key, start, stop) 2487 2488 if isinstance(节点,tables.VLArray): -> 2489 ret = node[0][start:stop] 2490 else: 2491 dtype = getattr(attrs, 'value_type', None)
~/.local/lib/python3.6/site-packages/tables/vlarray.py 在 getitem(自我,钥匙)
~/.local/lib/python3.6/site-packages/tables/vlarray.py in read(self, 开始,停止,步骤)
tables/hdf5extension.pyx in tables.hdf5extension.VLArray._read_array()
ValueError: 无法将此数组的 WRITEABLE 标志设置为 True
不知道发生了什么。我已经尝试重新安装tables、pandas 基本上所有内容,但不想阅读。
【问题讨论】:
-
你能用 HDFView 打开
myfile.h5并查看数据吗?或者,您是否尝试过使用h5dump工具读取文件?它是来自 HDF Group 的命令行实用程序。这是查看您拥有的东西的另一种方式。你也可以试试pytables命令行工具ptdump。这些可能有助于查明问题。 -
当我用
h5py打开它时,我得到了密钥 ['pd']。这有 4 个键:<KeysViewHDF5 ['axis0', 'axis1', 'block0_items', 'block0_values']> -
ptdump将组结构和数据集格式转储到命令窗口(或重定向到文本文件)。如果没有错误,这是一个好的开始。您是否看到一些VLArrays与数据一起列出?h5py是访问 HDF5 数据的另一种方法。它使用类似字典的方法,其中键是您的*节点名称,值是对象(组或数据集)。这样做的目的是验证有效的HDF5文件,以便您可以专注于您的代码。
标签: python pandas pytables hdf