修复此问题后,需要在以下位置还原xfail装饰器: https :
我突然收到这个错误,知道吗?
# Your code here
input_df = pd.read_hdf(path_or_buf='x.hdf5',key='/x',mode='r')
追溯 :
`
Traceback (most recent call last):
File "...", line 115, in <module>
input_df = pd.read_hdf(path_or_buf='x.hdf5',key='/x',mode='r')
File "/usr/local/lib/python3.6/dist-packages/pandas/io/pytables.py", line 394, in read_hdf
return store.select(key, auto_close=auto_close, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/pandas/io/pytables.py", line 741, in select
return it.get_result()
File "/usr/local/lib/python3.6/dist-packages/pandas/io/pytables.py", line 1483, in get_result
results = self.func(self.start, self.stop, where)
File "/usr/local/lib/python3.6/dist-packages/pandas/io/pytables.py", line 734, in func
columns=columns)
File "/usr/local/lib/python3.6/dist-packages/pandas/io/pytables.py", line 2937, in read
start=_start, stop=_stop)
File "/usr/local/lib/python3.6/dist-packages/pandas/io/pytables.py", line 2489, in read_array
ret = node[0][start:stop]
File "/usr/local/lib/python3.6/dist-packages/tables/vlarray.py", line 681, in __getitem__
return self.read(start, stop, step)[0]
File "/usr/local/lib/python3.6/dist-packages/tables/vlarray.py", line 821, in read
listarr = self._read_array(start, stop, step)
File "tables/hdf5extension.pyx", line 2155, in tables.hdf5extension.VLArray._read_array
ValueError: cannot set WRITEABLE flag to True of this array
@ macd2 :感谢您举报! 有两件事:
pandas.show_versions
提供您的环境信息吗?我突然收到这个错误,知道吗?
pandas
早期版本上为您工作。 该代码什么时候才对您有效? 您现在使用的是哪个版本(与第一个问题有关)?cc @jreback
使用numpy = 1.16.0时,出现此错误,当我将numpy = 1.15.4降级时,问题消失了
@gfyoung当然这里是版本:
pandas.show_versions
'依赖关系':
{'pandas':'0.23.4','pytest':'3.4.0','pip':'18 .1','setuptools':'40 .6.3','Cython':'0.29.3',' numpy':'1.16.0','scipy':'1.2.0','pyarrow':无,'xarray':无,'IPython':'6.5.0','sphinx':无,'patsy' :'0.5.0','dateutil':'2.7.5','pytz':'2018.7','blosc':无,'bottleneck':'1.2.1','tables':'3.4.4' ,'numexpr':'2.6.8','feather':无,'matplotlib':'3.0.2','openpyxl':'2.5.12','xlrd':'1.1.0','xlwt' :'1.3.0','xlsxwriter':'0.7.3','lxml':'4.1.1','bs4':'4.4.1','html5lib':'1.0b8','sqlalchemy': '1.2.15','pymysql':'0.9.2','psycopg2':'2.7.6.1(dt dec pq3 ext lo64)','jinja2':'2.10','s3fs':无,'fastparquet' :无,'pandas_gbq':无,'pandas_datareader':'0.7.0'}
```
不幸的是,我无法共享文件,但是我认为问题确实来自numpy,因为@vvvlc表示这是其git上的另一个问题:
https://github.com/nipy/nibabel/issues/697
PS: just downgraded to numpy=1.15.4 and indeed it resolves the issue
同时,熊猫有什么可以做的? 或者只是等待下一个
pytables发布?
在2019年1月21日星期一5:34 AM macd2 [email protected]写道:
@gfyoung https://github.com/gfyoung确保这里是版本:
'依赖关系':
{'pandas':'0.23.4','pytest':'3.4.0','pip':'18 .1','setuptools':'40 .6.3','Cython':'0.29.3',' numpy':'1.16.0','scipy':'1.2.0','pyarrow':无,'xarray':无,'IPython':'6.5.0','sphinx':无,'patsy' :'0.5.0','dateutil':'2.7.5','pytz':'2018.7','blosc':无,'bottleneck':'1.2.1','tables':'3.4.4' ,'numexpr':'2.6.8','feather':无,'matplotlib':'3.0.2','openpyxl':'2.5.12','xlrd':'1.1.0','xlwt' :'1.3.0','xlsxwriter':'0.7.3','lxml':'4.1.1','bs4':'4.4.1','html5lib':'1.0b8','sqlalchemy': '1.2.15','pymysql':'0.9.2','psycopg2':'2.7.6.1(dt dec pq3 ext lo64)','jinja2':'2.10','s3fs':无,'fastparquet' :无,'pandas_gbq':无,'pandas_datareader':'0.7.0'}不幸的是我无法共享文件,但我认为问题确实来了
来自numpy的@vvvlc https://github.com/vvvlc说这是另一个
在他们的git上发布:nipy / nibabel#697 https://github.com/nipy/nibabel/issues/697
-
您收到此消息是因为您已订阅此线程。
直接回复此电子邮件,在GitHub上查看
https://github.com/pandas-dev/pandas/issues/24839#issuecomment-456043488 ,
或使线程静音
https://github.com/notifications/unsubscribe-auth/ABQHIqiIyuE-lmMlN2Ep-4htyMrTBdefks5vFaWqgaJpZM4aJQqs
。
对我来说, pip install numpy==1.15.4
也可以解决此问题。
@TomAugspurger这个问题首先出现在Google上(至少对我来说是这样),而且似乎很简单,所以仅等待上游修复就足够了。 你会问真的很棒:)
pip3 install numpy==1.15.4
也为我解决了。
但是,当我降级numpy时,我一直收到此错误ImportError: No module named 'numpy.core._multiarray_umath'
。 最终弄清楚了这是因为我将.h5文件存储为已安装numpy 1.16,并且不会随着降级的numpy重新打开...
您可以避免该错误:
ValueError: cannot set WRITEABLE flag to True of this array
当您使用熊猫保存数据时,将format='table'
传递给HDFStore.append
或HDFStore.put
。
这可能会解决您的问题,并通过pandas 0.24和numpy 1.16+测试
@ dev72
好的,但是已经存在的旧HDF文件呢?
我认为读取旧的hdf文件的最好方法是降级您的pandas + numpy版本,读取所有数据,然后使用format='table'
将其写入新的hdf存储中。
然后,它应该可以使用较新的numpy和pandas版本。
@ dev72是的,我在同一点上是正确的,但我宁愿坚持降级直到正确解决此问题
是的,同样来自Google,感谢您提交此问题@ macd2
因此,在追逐一些在numpy
和PyTables
提交的问题后, PyTables
master中修复,但尚未在发行版中解决。
https://github.com/PyTables/PyTables/issues/719#issuecomment -455612656
有人尝试过使用PyTables
master w / numpy >= 0.16
吗?
我使用它来工作
HDF5_DIR={HDF5_PATH} pip install -e git+https://github.com/PyTables/PyTables@492ee2f#egg=tables
pip install numpy==1.16.0
确保已安装cython和hdf5。
哪些版本的pytables和numpy复制了此内容? 它特定于数据吗?
与
pandas: 0.24.1
numpy: 1.16.2
tables: 3.4.4
这不会提高,
In [8]: df = pd.DataFrame({"A": [1, 2]})
In [9]: df.to_hdf('x.hdf5', key='x')
In [10]: pd.read_hdf('x.hdf5', 'x', mode='r')
Out[10]:
A
0 1
1 2
仅供参考,Pytables 3.5.0和3.5.1在PyPI上,并具有pytables方面的修复功能。
升级到pytables 3.5.1也会用numpy 1.16.2为我解决问题
处理tf 2.0.0需要numpy(至少)1.16.0。 将numpy降级到以前的版本在tf 2.0.0上不起作用
最有用的评论
使用numpy = 1.16.0时,出现此错误,当我将numpy = 1.15.4降级时,问题消失了