使用 Pandas read_csv() 读取压缩文件

本文详细解释了如何使用Pandas的read_csv()函数读取包括gzip、bz2等在内的多种压缩文件格式的CSV数据,特别指出压缩文件中只能包含一个文件且可能出现的错误。此方法对于处理压缩数据传输和节省存储空间有实用价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍

本文介绍了可使用 Pandas 的 read_csv() 读取的压缩文件。 read_csv() 这个名称可能会让您认为它只能读取扩展名为“.csv”的文件,但它也可以读取包含 csv 的压缩文件。

关于可读取的压缩文件

扩展名为“.gz”、“.bz2”、“.zip”、“.xz”、“.zst”、“.tar”、“.tar.gz”、“.tar.xz”、“.tar”可以加载“.bz2”压缩文件。 (参见 Pandas API 参考

如何编写 read_csv()

格式与“.csv”相同,只是更改扩展名。

import pandas as pd

#更改扩展名
df = pd.read_csv("压缩文件名.zip")

*压缩文件名.zip包含1个csv文件。

很重要的一点

压缩文件中只能包含一个文件。 如果输入多个文件,则会出现“ZIP 文件中找到多个文件。每个 ZIP 仅一个文件”之类的错误。

最后

这次描述了可以使用 read_csv() 读取的压缩文件。 使用这种方法是因为在工作中使用的数据最近开始以 BZ 格式而不是 csv 格式分发。 当用于分析的文件被压缩发送时,或者当使用 CSV 格式会占用空间时,它似乎很有用。

Pandas csv相关:Pandas read_csv()小数点的原因及对策

### 使用 Pandas 读取 CSV 文件的示例 #### 基本读取操作 为了从 CSV 文件读取数据并创建 DataFrame 对象,可以使用 `pd.read_csv` 函数: ```python import pandas as pd df = pd.read_csv('example.csv') print("从 CSV 文件加载的 DataFrame:\n", df) ``` 此代码片段展示了如何简单地读取名为 `example.csv` 的文件,并将其内容转换成一个 DataFrame 对象以便进一步处理[^1]。 #### 跳过错行的情况 当遇到格式错误或其他可能导致读取失败的行时,默认情况下 Pandas 将抛出异常。为了避免这种情况的发生,可以在调用 `read_csv` 方法时设置参数 `on_bad_lines='skip'` 来跳过有问题的数据行: ```python import pandas as pd df = pd.read_csv('example.csv', on_bad_lines='skip') print(df) ``` 注意,在较新的版本中推荐使用 `on_bad_lines` 替代已弃用的 `error_bad_lines` 参数[^2]. #### 自定义分隔符和其他选项 对于那些具有特殊结构或格式化的 CSV 文件,比如带有注释符号 (#) 或者自定义缺失值表示法 (NA),则可通过传递额外的关键字参数给 `read_csv` 进行配置: ```python import pandas as pd data = pd.read_csv( 'data.csv', sep=',', # 定义字段之间的分隔符为逗号 comment='#', # 忽略以井号开头的行作为注释 na_values=[''] # 把空字符串识别为空缺值(NA) ) print(data) ``` 这段脚本不仅指定了列间分隔符还设置了特定条件下应视为 NA/NaN 的情况以及忽略了某些类型的注解性文本[^3]. #### 处理不同编码方式 有时源文件可能会采用不同于 UTF-8 编码的方式存储;此时就需要通过 `encoding` 参数告知 Pandas 正确解析该文档所需的字符集信息: ```python import pandas as pd df = pd.read_csv('data.csv', encoding='utf-8') print(df) ``` 这里假设目标文件是以 UTF-8 形式编写的,因此显式设定了相应的编码属性[^4].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Allan_lam

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值