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()) и сохранил таблицу, и проблема исчезла, так что, возможно, она как-то связана с текстовыми данными?