Panda read_csv中的编码错误[重复]

Posted

技术标签:

【中文标题】Panda read_csv中的编码错误[重复]【英文标题】:Encoding Error in Panda read_csv [duplicate] 【发布时间】:2015-08-08 09:05:24 【问题描述】:

我正在尝试将 CSV 文件读入 Pandas 中的 Dataframe。当我尝试这样做时,我收到以下错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x96 in position 55: invalid start byte

这是来自代码:

import pandas as pd

location = r"C:\Users\khtad\Documents\test.csv"

df = pd.read_csv(location, header=0, quotechar='"')

这是在 Windows 7 Enterprise Service Pack 1 机器上,它似乎适用于我创建的每个 CSV 文件。在这种特殊情况下,位置 55 的二进制文件是 00101001,位置 54 是 01110011,如果这很重要的话。

使用文本编辑器将文件保存为 UTF-8 似乎也无济于事。同样,添加参数 "encoding='utf-8' 也不起作用——它返回相同的错误。

此错误的最可能原因是什么?除了暂时放弃 DataFrame 构造并使用 csv 模块逐行读取 CSV 之外,还有其他解决方法吗?

【问题讨论】:

您是否尝试过将参数encoding='utf-8' 传递给read_csv 或者您是否尝试过使用 csv 模块读取文件以检查文件本身是否存在问题? @EdChum 我将把​​它添加到问题中,但是是的,这是我尝试过的事情之一。 您必须发布原始输入或数据链接,您也可以尝试utf-16' just in case for the encoding` 请不要使用pd.DataFrame.from_csv,它不再维护,使用***pd.read_csv,因为它功能更丰富 【参考方案1】:

尝试使用encoding='latin1'encoding='iso-8859-1'encoding='cp1252' 调用read_csv(这些是Windows 上的各种编码中的一部分)。

【讨论】:

我能够成功使用所有这 3 种编码。 谨慎选择编码。有一些差异,例如印刷引号。另一种常见的是 iso-8859-15,其中包括 EUR 符号。 这是我偶然发现的关于这个问题的第一个线程,所以只是为了完整起见:以上都不适用于我的(类似)问题,但UTF-16 因为编码确实有效。如果 maxymoo 提到的那些失败了,试试这个。 删除编码属性对我有用 encoding='iso-8859-1' 在 Windows 上为我工作。【参考方案2】:

这也适用于 Mac,您也可以使用

df= pd.read_csv('Region_count.csv', encoding ='latin1')

【讨论】:

以上是关于Panda read_csv中的编码错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章

pandas to_csv read_csv编码错误

为啥在指定编码 utf-8 时 pandas read_csv 会出现 unicode 错误? [复制]

Panda Pivot Column 合并删除和展平[重复]

pandas用read_csv时编码问题解决

重复将多个 Panda 数据集导出到多个 csv 文件的任务

python之panda模块2