使用pd.read_csv导入csv-无效的起始字节错误

613*_*654 0 python-3.x pandas

我正在尝试使用以下方式导入csv文件:

data = pd.read_csv("filename.csv")
Run Code Online (Sandbox Code Playgroud)

我收到以下错误: "UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 2: invalid start byte".

这个问题的答案:UnicodeDecodeError:'utf8'编解码器无法解码字节0x9c 可能有效,但是我不确定如何实现(我无法对此答案发表评论,因为我还没有足够的声誉)。

任何帮助,将不胜感激。

编辑:问题似乎与我有学位标志的事实有关。如果在导入过程中跳过此问题,对我来说很好。

小智 5

如果由于文件编码不是pd.read_csv()docs 所提到的默认编码格式而导致编码错误,则可以先安装文件,chardet然后输入以下代码来查找文件的编码:

import chardet    
rawdata = open('D:\\path\\file.csv', 'rb').read()
result = chardet.detect(rawdata)
charenc = result['encoding']
print(charenc)
Run Code Online (Sandbox Code Playgroud)

这将为您提供文件的编码。

获得编码后,您可以将其读取为:

pd.read_csv('D:\\path\\file.csv',encoding = 'encoding you found')
Run Code Online (Sandbox Code Playgroud)

要么

pd.read_csv(r'D:\path\file.csv',encoding = 'encoding you found')
Run Code Online (Sandbox Code Playgroud)

您将在此处获得所有编码的列表

希望您觉得这个有帮助。

  • 感谢您的回复。真正享受此解决方案,它运行完美,并且通过将charenc放入read语句中,可以自动完成:pd.read_csv('D:\\ path \\ file.csv',encoding = charenc) (2认同)