我想将数据存储在 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
,Python3.4.3
谢谢。