熊猫有many output formats。哪一个最适合迭代地将行附加到数据帧并立即将它们写入磁盘 - 这样,如果程序或机器崩溃,最后计算的行仍然保存,结果数据文件没有损坏?
我无法在各个to_*()
函数的文档字符串中找到此功能的示例。
答案 0 :(得分:2)
您可以使用pd.HDFStore.append()
或df.to_hdf(path, 'table_name', append=True)
- 请参阅HDF docs和.append()
docs
用法示例是,df
代表一行:
df.to_hdf('store.h5','table',append=True)
或
pd.HDFStore('store.h5).append('table_name', df)
答案 1 :(得分:0)
一种解决方案是编写一个自定义生成器,在生成DataFrame之前写入磁盘
data = [(0,1,'a'), (0,2,'b'), (1,2,'c')]
def writeGen(data_tuples):
with open('file.csv', 'w') as f:
for data in data_tuples:
string = ','.join(str(c) for c in data) + '\n'
f.write(string)
yield data
pd.DataFrame(writeGen(data))
上面写的csv
文件是期望的和输出:
0 1 2
0 0 1 a
1 0 2 b
2 1 2 c