使用pandas读取CSV文件时出现错误。

4
import pandas
df = pandas.read_csv("trial.csv")

上述代码用于读取一个简单的csv文件。但是我一直收到以下错误信息。
File "C:\Users\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 1748, in read
    data = self._reader.read(nrows)
  File "pandas\_libs\parsers.pyx", line 890, in pandas._libs.parsers.TextReader.read (pandas\_libs\parsers.c:10862)
  File "pandas\_libs\parsers.pyx", line 912, in pandas._libs.parsers.TextReader._read_low_memory (pandas\_libs\parsers.c:11138)
  File "pandas\_libs\parsers.pyx", line 989, in pandas._libs.parsers.TextReader._read_rows (pandas\_libs\parsers.c:12175)
  File "pandas\_libs\parsers.pyx", line 1117, in pandas._libs.parsers.TextReader._convert_column_data (pandas\_libs\parsers.c:14136)
  File "pandas\_libs\parsers.pyx", line 1169, in pandas._libs.parsers.TextReader._convert_tokens (pandas\_libs\parsers.c:14972)
  File "pandas\_libs\parsers.pyx", line 1273, in pandas._libs.parsers.TextReader._convert_with_dtype (pandas\_libs\parsers.c:17119)
  File "pandas\_libs\parsers.pyx", line 1289, in pandas._libs.parsers.TextReader._string_convert (pandas\_libs\parsers.c:17347)
  File "pandas\_libs\parsers.pyx", line 1524, in pandas._libs.parsers._string_box_utf8 (pandas\_libs\parsers.c:23041)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe3 in position 43: invalid continuation byte

1
请尝试 -- df = pandas.read_csv("trial.csv", encoding='latin-1') - Vikas Gupta
添加编码标志对我很有帮助。 - Sandy B
4个回答

8

非常抱歉回复晚了,请将您的代码更改为以下内容,然后查看是否有效。

import pandas
df = pandas.read_csv("trial.csv", encoding="ISO-8859-1")

2
import pandas
df = pandas.read_csv("trial.csv", "rb")

如果以上建议都没有起作用,"rb"(读取二进制文件)可能会解决问题。

1
你的解析器试图解析 utf-8 数据,但你的文件似乎使用了另一种编码(或者可能存在无效字符)。
尝试指示解析器以 纯 ASCII 格式解析,也许需要一些代码页(我不懂 Python,所以无法提供帮助)。

看起来你需要使用encoding参数。

这里是可能的编码列表


0
store=pd.read_csv('Super_Store.csv', encoding='windows-1252') 

我们只需要告诉Python这个文件的实际编码。经过一些尝试和错误,我发现它是以windows-1252编码保存的。

这可能是因为这些文件曾经保存在Windows电脑上,并且这是该计算机的默认字符编码。 详情请参见:
HTML Windows-1252 (ANSI) 参考资料


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接