7

我有一个数据框,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

如何让数据正确存储?

4

1 回答 1

5

请注意:以下方法convert_objects()现已弃用,可能无法使用 Call DataFrame.convert_objects()

df = DataFrame(randn(10, 1), dtype=object).convert_objects()
df.to_hdf('/tmp/blah.h5', 'df', append=True)

在开始保存到 HDF5 之前,可能值得检查一下是否可以以正确的格式获取数据。例如,无论在哪里df创建,都转换那里的对象,而不是在保存时转换它们。一般来说,pandas 中的操作会非常繁琐,a Seriesof floats 和 a dtypeof object。如果您在需要对对象数组做任何事情时立即转换对象数组(在可能的情况下),您的生活将会轻松得多。

于 2013-09-14T19:22:09.330 回答