如何在Python Pandas中将数据导出为压缩格式的CSV文件?

大墨姑娘_3250

大墨姑娘_3250

2026-07-21

935人浏览

原创

pandas原生支持to_csv的compression参数直接导出压缩csv,无需额外包或手动打包;支持gzip、bz2、xz及zstd等格式,传字典时必须含"method"键,如{"method": "gzip", "compresslevel": 6},错误写法如{"method": "gzip", "level": 6}会报错。

如何在python pandas中将数据导出为压缩格式的csv文件?

直接用 to_csv 的 compression 参数就行

不用额外安装包、不手动打包,Pandas 原生支持导出带压缩的 CSV。关键就是 to_csv 的 compression 参数,它接受字符串或字典,控制底层压缩行为。

常见错误是手动用 gzip 模块写文件再套一层,结果生成的是二进制 gzip 流而非标准 CSV.gz 文件——Pandas 会自动处理编码和换行,手动操作反而容易破坏 CSV 结构。

  • compression="gzip":生成 .csv.gz,最常用,兼容性好
  • compression="bz2":压缩率更高但慢,生成 .csv.bz2
  • compression="xz":更高压缩率,需要系统有 xz 工具(Windows 可能缺)
  • compression={"method": "zstd", "level": 3}:需安装 zstandard 包,速度快、压缩平衡

compression 字典参数怎么配才不出错

传字典时必须包含 "method" 键,否则报 ValueError: Unknown compression method。其他键取决于方法,比如 zstd 支持 "level",gzip 支持 "compresslevel"(注意拼写),而 bz2 用 "compresslevel" 但取值范围是 1–9(默认 9)。

容易踩的坑是把 compresslevel 写成 compression_level 或漏掉引号——字典键必须是字符串,且大小写敏感。

python-parallelization
python-parallelization

将顺序 Python 代码转换为并行/并发实现,用于在需要并行化 Python 代码、提升性能时使用。

下载
  • {"method": "gzip", "compresslevel": 6}:比默认 9 快一点,体积略大
  • {"method": "zstd", "level": 1}:适合频繁读写的场景,压缩快解压也快
  • 不要写 {"method": "gzip", "level": 6} —— gzip 不认 level 这个 key

导出后文件打不开?检查这三点

导出的 .csv.gz 看起来“打不开”,通常不是 Pandas 问题,而是工具链不匹配:

  • Excel 不能直接双击打开 .csv.gz,得先解压,或用支持 gzip 的 CSV 查看器(如 VS Code + CSV Viewer 插件)
  • Linux/macOS 下用 zcat file.csv.gz | head 快速验证内容是否正常
  • 如果用 Python 读回,必须用 pd.read_csv("file.csv.gz") ——Pandas 自动识别扩展名并解压,别手动 gzip.open 再传给 read_csv,会报编码错误

大数据量下 compression 对性能的影响

压缩本身耗 CPU,尤其 xz 和高 compresslevel 的 gzip。实测 1GB CSV:

  • compression="gzip":比无压缩慢约 1.8×,磁盘节省 ~75%
  • compression={"method": "zstd", "level": 1}:只慢 ~1.2×,节省 ~68%,推荐替代 gzip
  • compression="xz":慢 4×+,节省 ~80%,仅适合归档、非实时场景

真正卡住的往往是磁盘 I/O,不是压缩;如果 SSD 速度够,选 zstd 级别 1–3 是平衡点。别为了省几 MB 开启 compresslevel=9,时间成本远超收益。

Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!

相关专题

更多
python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

2023.07.20

1751

4

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

2023.07.25

4564

7

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.31

1729

3

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

2023.08.03

26857

23

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.04

3247

5

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.04

3267

5

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

1203

5

python合并两个列表
python合并两个列表

Python是一种强大的编程语言,具有许多方便的功能和工具。在Python中,有多种方法可以合并两个列表。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.10

596

4

python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2543

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Uvicorn官方安装与入门手册
Uvicorn官方安装与入门手册

共0课时 | 0人学习

Python uv官方项目管理指南
Python uv官方项目管理指南

共0课时 | 0人学习

Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习