【发布时间】:2016-12-03 22:49:27
【问题描述】:
我知道通过将 compression='gzip' 参数传递给 pd.to_csv() 我可以将 DataFrame 保存到压缩的 CSV 文件中。
my_df.to_csv('my_file_name.csv', compression='gzip')
我也知道,如果我想追加一个 DataFrame 到现有 CSV 文件的末尾,我可以使用 mode='a',就像这样
my_df.to_csv('my_file_name.csv', mode='a', index=False)
但是如果我想在压缩的 CSV 文件的末尾附加一个 DataFrame 怎么办?这甚至可能吗?我试着这样做
my_df.to_csv('my_file_name.csv', mode='a', index=False, compression='gzip')
但是生成的 CSV 没有被压缩,尽管状态很好。
这个问题的动机是我使用 Pandas 处理一个大型 CSV 文件。我需要生成压缩的 CSV 输出,并将 CSV 文件分块处理到 DataFrame 中,这样我就不会遇到 MemoryError。因此,对我来说最合乎逻辑的做法是将每个输出 DataFrame 块一起附加到一个压缩的 zip 文件中。
我正在使用 Python 3.4 和 Pandas 0.16.1。
【问题讨论】:
-
在 pandas 0.18.1 中附加 gzipped 数据框对我有用。你也可以concatenate gzipped files。