我可以使用pandas附加到压缩流吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我可以使用pandas附加到压缩流吗?相关的知识,希望对你有一定的参考价值。
我知道通过将compression='gzip'
参数传递给pd.read_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)
但是,如果我想将DataFrame附加到压缩CSV文件的末尾怎么办?这甚至可能吗?我试着这样做
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。
答案
您可以执行以下操作
import gzip
with gzip.open('my_file_name.csv.gz', 'a') as compressed_file:
df.to_csv(compressed_file, index=False)
因为pandas .to_csv
方法接受路径或类文件对象。
以上是关于我可以使用pandas附加到压缩流吗?的主要内容,如果未能解决你的问题,请参考以下文章