我有一个数据框,df:
datetime bid ask bidvolume askvolume
0 2007-03-30 21:00:00.332000 1.9682 1.9678 4 0.8
尝试将此附加到新数据存储区。数据存储区不存在,因此我使用以下内容创建和附加数据;
store = pd.HDFStore(storePath,mode='w')
store.append('data',df)
store.close()
我收到此错误:在store.append
行。
TypeError: Cannot serialize the column [bid] because
its data contents are [floating] object dtype
如何正确存储数据?
答案 0 :(得分:5)
请注意:以下方法convert_objects()
现已弃用,可能无效
致电DataFrame.convert_objects()
:
df = DataFrame(randn(10, 1), dtype=object).convert_objects()
df.to_hdf('/tmp/blah.h5', 'df', append=True)
在开始保存到HDF5之前,可能需要检查一下是否可以以正确的格式获取数据。例如,在创建df
的任何地方,将对象转换为其中,而不是在保存时转换它们。一般来说,使用Series
float
dtype
object
{{1}}的{{1}}对大熊猫进行操作会非常麻烦。如果你需要对它们做任何事情就转换你的对象数组(如果可能的话),你的生活会更容易。