HDFStore со строковыми столбцами дает проблемы
У меня есть панды DataFramemyDF
с несколькими строковыми столбцами (чьиdtype
являетсяobject
) и много числовых столбцов. Я попробовал следующее:
d=pandas.HDFStore("C:\\PF\\Temp.h5")
d['test']=myDF
Я получил этот результат:
C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site-packages\pandas\io\pytables.py:2446: PerformanceWarning:
your performance may suffer as PyTables will pickle object types that it cannot
map directly to c-types [inferred_type->mixed,key->block2_values]
[items->[0, 1, 3, 4, 5, 6, 9, 10, 292, 411, 412, 477, 478, 479, 495, 572, 581, 590, 599, 608, 617, 626, 635]]
warnings.warn(ws, PerformanceWarning)
Кажется, что проблема возникает для каждого столбца, который является строкой. Например, если я попробую
myDF[0].dtype
я получил
Out[38]: dtype('O')
Как я могу решить проблему, то есть изменитьdtype
для строковых столбцов, чтобы HDFStore мог рассматривать его как строковый столбец?
* РЕДАКТИРОВАТЬ *
Больше информации по запросу
>>> pandas.__version__
Out[49]: '0.13.1'
>>> tables.__version__
Out[53]: '3.1.0'
Построить фрейм данных панд следующим образом:
pandas.read_csv(fName,sep="|",header=None,low_memory=False)
Когда я пытаюсь
myDF.info()
я получил
Int64Index: 153895 entries, 0 to 153894
Data columns (total 644 columns):
0 object
1 object
2 int64
3 object
4 object
5 object
6 object
7 int64
8 float64
9 object
10 object
11 float64
12 float64
13 float64
14 float64
...
...
642 float64
643 float64
dtypes: float64(619), int64(2), object(23)
Все строковые столбцы были прочитаны какobject