按行将pandas数据帧保存到磁盘

时间:2016-06-22 15:38:44

标签: python pandas

熊猫有many output formats。哪一个最适合迭代地将行附加到数据帧并立即将它们写入磁盘 - 这样,如果程序或机器崩溃,最后计算的行仍然保存,结果数据文件没有损坏?

我无法在各个to_*()函数的文档字符串中找到此功能的示例。

2 个答案:

答案 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