我可以使用pandas附加到压缩流吗?

问题描述 投票:6回答:1

我知道通过将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。

python csv pandas gzip
1个回答
0
投票

您可以执行以下操作

import gzip

with gzip.open('my_file_name.csv.gz', 'a') as compressed_file:
    df.to_csv(compressed_file, index=False)

因为pandas .to_csv方法接受路径或类文件对象。

© www.soinside.com 2019 - 2024. All rights reserved.