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 での操作は、Seriesoffloatdtypeofを使用すると非常に面倒になりますobject。オブジェクト配列で何かをする必要が生じたらすぐに (可能であれば) オブジェクト配列を変換すると、作業がずっと楽になります。

于 2013-09-14T19:22:09.330 に答える