Я пытаюсь экспортировать pandas DataFrame в hdf5-файл. DataFrame, имеющий следующую структуру:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 a 4 non-null float64
1 b 4 non-null float64
2 c 4 non-null float64
3 d 4 non-null object
dtypes: float64(3), object(1)
memory usage: 256.0+ bytes
В столбце d я сохраняю некоторые пути к файлам как тип. <class 'pathlib.WindowsPath'>
Если я вызову функцию to_hdf () следующим образом df.to_hdf(r'C:\data\test.h5', mode='w', key=key,format='table', data_columns=True)
, я получу следующую ошибку.
File "C:\py36_4\lib\site-packages\pandas\io\pytables.py", line 4800, in _maybe_convert_for_string_atom
for i in range(len(block.shape[0])):
TypeError: object of type 'int' has no len()
Если я пропущу столбец d, экспорт в hdf5 будет работает как положено. Поэтому, похоже, проблема столбца d и используемого типа '<class 'pathlib.WindowsPath'>
'?