3

HDFS ファイルにデータを保存したいのですが、そのファイルに新しいデータを追加すると、インデックスが繰り返されます。どうすれば回避できるか教えてください。

In [35]: hdf = pd.HDFStore('temp.h5')
In [36]: hdf.is_open
Out[36]: True

In [37]: hdf
Out[37]:
<class 'pandas.io.pytables.HDFStore'>
File path: temp.h5
Empty

で値を追加index=None

In [38]: pd.DataFrame(np.random.random((3, 1)), columns=['values'], index=None).to_hdf(hdf, 'rand_values', append=True)

In [39]: hdf
Out[39]:
<class 'pandas.io.pytables.HDFStore'>
File path: temp.h5
/rand_values            frame_table  (typ->appendable,nrows->3,ncols->1,indexers->[index])

# So far so good...
In [40]: hdf['rand_values']
Out[40]:
     values
0  0.258981
1  0.743619
2  0.297104

In [41]: hdf.close()
In [42]: hdf.open()

# Add values again with INDEX=NONE
In [43]: pd.DataFrame(np.random.random((3, 1)), columns=['values'], index=None).to_hdf(hdf, 'rand_values', append=True)

インデックスが繰り返されます...

In [44]: hdf['rand_values']
Out[44]:
     values
0  0.258981
1  0.743619
2  0.297104
0  0.532033
1  0.242023
2  0.431343

In [45]: hdf.close()
In [46]: hdf.open()

In [47]: hdf['rand_values']
Out[47]:
     values
0  0.258981
1  0.743619
2  0.297104
0  0.532033
1  0.242023
2  0.431343

# Print index
In [48]: hdf['rand_values'].index
Out[48]: Int64Index([0, 1, 2, 0, 1, 2], dtype='int64')

私はパンダ0.17.0、Pythonを使用しています3.4.3

ありがとう。

4

1 に答える 1