pd.read_hdf throws 'не может установить флаг WRITABLE в True для этого массива'
При беге
pd.read_hdf('myfile.h5')
Я получаю следующую ошибку трассировки:
[[... немного дольше прослеживается]]
~/.local/lib/python3.6/site-packages/pandas/io/pytables.py в read_array (self, key, start, stop) 2487 2488, если isinstance (node, tables.VLArray): → 2489 ret = узел [0] [начало: остановка] 2490 остальное: 2491 dtype = getattr (attrs, 'value_type', None)
~/.local/lib/python3.6/site-packages/tables/vlarray.py в getitem (self, key)
~/.local/lib/python3.6/site-packages/tables/vlarray.py в режиме чтения (self, start, stop, step)
tables/hdf5extension.pyx в tables.hdf5extension.VLArray._read_array()
ValueError: невозможно установить для флага WRITEABLE значение True этого массива
Понятия не имею, что происходит. Я попытался переустановить tables
, pandas
все в принципе, но не хочет читать это.
Ответы
Ответ 1
Вы используете 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.
Ответ 2
Кажется, что строки time-date
вызывали проблему, и когда я преобразовал их из текста в numpy (pd.to_datetime())
и сохранил таблицу, и проблема исчезла, так что, возможно, она как-то связана с текстовыми данными?