read_csv()参数之encoding——看这篇就够了

当CSV文件编码非UTF-8,如ANSI,会导致读取错误。使用pandas的read_csv函数时,可通过指定encoding参数解决,例如`pd.read_csv(file.csv,encoding=ANSI)`。此方法允许以正确的编码读取CSV数据。

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

前言

最近被问到:为什么CSV文件读不出来?

一看报错:'utf-8' codec can't decode byte 0xb3 in position 0: invalid start byte

其实这个问题很常见,解决起来也很简单。也顺便介绍一下 read_csv() encoding 参数。走起!!!

正文

首先,介绍一下 encoding 参数。该参数指的是文件的编码方式,Python 中或者是 pandas 中默认是 'utf-8' 的编码方式,所以在读取CSV文件时也是使用 utf-8 的方式进行解码。但不是所有的文件都是 utf-8 的编码方式,因此,pandas.read_csv() 中设置了一个 encoding 参数来专门处理之一情况。

编码方式有哪些呢?这篇文章不回答这个问题,如果感兴趣可以移步:codecs — Codec registry and base classes — Python 3.11.2 documentationSource code: Lib/codecs.py This module defines base classes for standard Python codecs (encoders and decoders) and provides access to the internal Python codec registry, which manages the codec and...https://docs.python.org/3/library/codecs.html#standard-encodings

这里只介绍解决方法 :重点!重点!重点!

步骤一:用记事本打开CSV文件,看右下角

步骤二:这里避开水印放大展示,这个CSV文件是 ANSI 的编码方式,utf-8 不能成功解码,因此,需要手动修改默认参数。

 步骤三:传递参数。将编码方式以字符串的形式传递给 encoding 参数,如下:

import pandas as pd
df = pd.read_csv('D:\Document\CSV\city.csv', encoding = 'ANSI') 
# ANSI 小写也可以

 最后当然就是顺利运行代码,读取到你想要的数据。

### 如何使用 Pandas 的 `read_csv` 函数读取 UTF-8 编码的 CSV 文件并打印数据 要通过 Pandas 使用 `read_csv` 方法来加载一个带有 UTF-8 编码的 CSV 文件,并将其内容作为 DataFrame 打印出来,可以按照以下方式实现: #### 加载和处理 CSV 数据 Pandas 提供了一个强大的函数 `pandas.read_csv()` 来导入 CSV 文件到内存中的 DataFrame 对象。为了指定编码格式为 UTF-8,在调用该函数时可以通过参数 `encoding='utf-8'` 明确设置编码[^1]。 以下是具体的代码示例展示如何完成这一操作: ```python import pandas as pd # 使用 read_csv 函数读取 CSV 文件, 并指明其编码为 'utf-8' df = pd.read_csv('example.csv', encoding='utf-8') # 将整个 DataFrame 输出至控制台 print(df) ``` 这段脚本首先引入了必要的库——即 Pandas 库;接着利用 `pd.read_csv()` 命令把名为 example.csv 的外部文件转换成内部可操作的数据结构形式(DataFrame),期间特别强调采用的是 UTF-8 字符集解码规则以确保兼容性问题得到妥善解决;最后一步则是简单地借助 Python 内置函数 `print()` 把这个新创建出来的表格型变量 df 完整呈现给用户查看。 另外值得注意的一点是如果遇到含有分类特征的情况,则可能需要用到另一个非常有用的工具叫做 one-hot encoder 实现哑变量转化过程,这通常由 `pandas.get_dummies()` 处理[^2]。不过这里我们讨论的主题仅限于基本的 CSV 导入与显示功能而不涉及更复杂的预处理步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值