我想知道为什么HDFStore会在pandas中的字符串列上给出警告。我认为它可能是我的实际数据库中的NaNs,但在这里尝试它会给我两个列的警告,即使其中一列不是混合的,只是字符串。
使用.13.1 pandas和3.1.1表
In [75]: d1 = {1:{'Mix': 'Hello', 'Good': 'Hello'}}
In [76]: d2 = {2:{'Good':'Goodbye'}}
In [77]: d2_df = pd.DataFrame.from_dict(d2,orient='index')
In [78]: d_df = pd.DataFrame.from_dict(d1,orient='index')
In [80]: d = pd.concat([d_df,d2_df])
In [81]: d
Out[81]:
Good Mix
1 Hello Hello
2 Goodbye NaN
[2 rows x 2 columns]
In [84]: d.to_hdf('test_.h5','d')
/home/cschwalbach/venv/lib/python2.7/site-packages/pandas-0.13.1-py2.7-linux-x86_64.egg/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->block0_values] [items->['Good', 'Mix']]
warnings.warn(ws, PerformanceWarning)发布于 2014-06-06 04:40:42
使用fixed格式(如果不指定format,则默认为fixed)进行存储时,将存储object数据类型(字符串在pandas中存储为对象数据类型)。这些是数组类型(CArray、EArray)中的PyTables不支持的可变长度格式,请参阅警告here
但是,您可以将其存储在format='table'中;有关存储固定长度字符串的docs,请参阅此处。
发布于 2016-11-26 02:30:53
NaN值是这里的问题所在。如果您设法替换为空字符串,则警告将消失。
https://stackoverflow.com/questions/24069213
复制相似问题