熊猫:有效地写出数千个小文件

时间:2018-05-08 14:04:04

标签: python python-3.x pandas dataframe save

这是我的问题。

我有一个包含超过100M行的大型CSV文件,我需要在更小的文件中划分(如果需要,我可以添加更多详细信息)。目前我正在读取大块的CSV,进行一些计算以确定如何细分块并最终使用

写入(追加)文件
df.to_csv(outfile, float_format='%.8f', index=False, mode='a', header=header)

header变量为True,如果它是第一次写入'outfile',否则为False)。

在运行代码时,我注意到整个较小文件占用的磁盘内存量可能会大于单个大csv大小的三倍。

所以这是我的问题:

  • 这种行为正常吗? (可能它是,但我要求以防万一)
  • 是否可以减小文件的大小? (不同的文件格式?)[通过压缩解决,请参阅下面的更新和评论]
  • 对于CSV,这种情况有更好的文件类型吗?

请注意,我没有丰富的编程知识,我只是在论文中使用Python。

提前感谢任何愿意提供帮助的人。

更新:感谢@AshishAcharya和@PatrickArtner我学会了如何在编写和阅读CSV时使用压缩。不过,我想知道是否有任何文件类型可能比CSV更适合此任务。

新问题:(可能是愚蠢的问题)确实在压缩文件上附加了工作?

UPDATE 2:使用压缩选项我注意到了一些我不理解的内容。要确定我被教导使用du -hs <folder>命令的文件夹大小,但在包含压缩文件的文件夹或包含未压缩文件的文件夹中使用它会产生相同的值'3.8G'(两者都是使用与大CSV相同的前5M行)。从文件浏览器(Nautilus)来看,我得到的包含未压缩CSV的文件大约为590MB,另一个包含230MB。我错过了什么?

0 个答案:

没有答案