将大型 Pandas Dataframes 分块写入 CSV 文件

新手上路,请多包涵

如何将大数据文件分块写入 CSV 文件?

我有一组大数据文件(1M 行 x 20 列)。但是,我只对数据文件的 5 列左右感兴趣。

我想通过仅使用感兴趣的列制作这些文件的副本来使事情变得更容易,因此我可以使用较小的文件进行后期处理。所以我打算将文件读入数据框,然后写入 csv 文件。

我一直在研究将大数据文件分块读取到数据框中。但是,我还没有找到任何关于如何将数据分块写入 csv 文件的信息。

这是我现在正在尝试的,但这不会附加 csv 文件:

 with open(os.path.join(folder, filename), 'r') as src:
    df = pd.read_csv(src, sep='\t',skiprows=(0,1,2),header=(0), chunksize=1000)
    for chunk in df:
        chunk.to_csv(os.path.join(folder, new_folder,
                                  "new_file_" + filename),
                                  columns = [['TIME','STUFF']])

原文由 Korean_Of_the_Mountain 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

解决方案:

 header = True
for chunk in chunks:

    chunk.to_csv(os.path.join(folder, new_folder, "new_file_" + filename),
        header=header, cols=[['TIME','STUFF']], mode='a')

    header = False

笔记:

  • mode='a' 告诉熊猫追加。
  • 我们只在第一个块上写一个列标题。

原文由 Scratch‘N’Purr 发布,翻译遵循 CC BY-SA 4.0 许可协议

检查 to_csv 方法中的 chunksize 参数。 是文档。

写入文件看起来像:

 df.to_csv("path/to/save/file.csv", chunksize=1000, cols=['TIME','STUFF'])

原文由 Alex 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏