用于append=True
呼叫to_hdf
:
import numpy as np
import pandas as pd
filename = '/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 HDF5
df.to_hdf(filename, 'data', mode='w', format='table')
del df # allow df to be garbage collected
# Append more data
df2 = 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 B
0 0 1
1 2 3
2 4 5
3 6 7
4 8 9
0 0 10
1 20 30
2 40 50
3 60 70
4 80 90
请注意,您需要format='table'
在第一个调用中使用df.to_hdf
以使表可追加。否则,'fixed'
默认情况下为格式,这对于读写来说是更快的,但是会创建一个不能追加的表。
因此,您可以一次处理一个CSV,用于append=True
构建hdf5文件。然后覆盖DataFrame或用于del df
允许对旧DataFrame进行垃圾回收。
另外,df.to_hdf
您也可以将其附加到HDFStore上,而不用调用:
import numpy as np
import pandas as pd
filename = '/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 B
0 0 1
1 2 3
2 4 5
3 6 7
4 8 9
0 0 10
1 20 30
2 40 50
3 60 70
4 80 90