用于
append=True呼叫
to_hdf:
import numpy as npimport pandas as pdfilename = '/tmp/test.h5'df = pd.Dataframe(np.arange(10).reshape((5,2)), columns=['A', 'B'])print(df)# A B# 0 0 1# 1 2 3# 2 4 5# 3 6 7# 4 8 9# Save to HDF5df.to_hdf(filename, 'data', mode='w', format='table')del df # allow df to be garbage collected# Append more datadf2 = pd.Dataframe(np.arange(10).reshape((5,2))*10, columns=['A', 'B'])df2.to_hdf(filename, 'data', append=True)print(pd.read_hdf(filename, 'data'))
产量
A B0 0 11 2 32 4 53 6 74 8 90 0 101 20 302 40 503 60 704 80 90
请注意,您需要
format='table'在第一个调用中使用
df.to_hdf以使表可追加。否则,
'fixed'默认情况下为格式,这对于读写来说是更快的,但是会创建一个不能追加的表。
因此,您可以一次处理一个CSV,用于
append=True构建hdf5文件。然后覆盖Dataframe或用于
deldf允许对旧Dataframe进行垃圾回收。
另外,
df.to_hdf您也可以将其附加到HDFStore上,而不用调用:
import numpy as npimport pandas as pdfilename = '/tmp/test.h5'store = pd.HDFStore(filename)for i in range(2): df = pd.Dataframe(np.arange(10).reshape((5,2)) * 10**i, columns=['A', 'B']) store.append('data', df)store.close()store = pd.HDFStore(filename)data = store['data']print(data)store.close()产量
A B0 0 11 2 32 4 53 6 74 8 90 0 101 20 302 40 503 60 704 80 90



