运行时
pd.read_hdf('myfile.h5')
我收到以下回溯错误:
[[...更长的回溯时间]]
〜/ .local / lib / python3.6 / site-packages / pandas / io / pytables.py在 read_array(self,key,start,stop)2487 2488如果 isinstance(节点,表.VLArray): -> 2489 ret =节点[0] [开始:停止] 2490否则: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, 开始,停止,执行步骤
table.hdf5extension.VLArray._read_array()中的tables / hdf5extension.pyx
ValueError:无法将此数组的WRITEABLE标志设置为True
不知道发生了什么。我试过基本上重新安装tables
,pandas
的所有内容,但不想阅读。
答案 0 :(得分:12)
您使用的是numpy 1.16吗?它与最新版本的pytables不兼容(请参阅https://github.com/PyTables/PyTables/blob/v3.4.4/tables/hdf5extension.pyx#L2155),但pytables团队尚未发布固定版本:https://github.com/PyTables/PyTables/issues/719
我发现解决此问题的唯一方法是降级numpy。
答案 1 :(得分:1)
将PyTables升级到版本3.5.1应该可以解决此问题。
pip install --upgrade tables
答案 2 :(得分:0)
似乎是time-date
字符串引起了问题,当我将它们从文本转换为numpy (pd.to_datetime())
并存储了表后,问题消失了,所以也许与文本数据有关吗?