【发布时间】: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 theencoding` -
请不要使用
pd.DataFrame.from_csv,它不再维护,使用顶级pd.read_csv,因为它功能更丰富