Pandas Read_CSV()在某些特定行上返回UnicodeDecodeError。如果我使用nrows=n1
,它可以正常工作,没有任何错误。但当我使用nrows=n2 (>n1)
时,它以某种方式返回UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 12: invalid start byte
它以前工作得很好,但在某种程度上它让我不断地返回错误。有时,当我重新启动计算机时,它会再次工作,但只在我第一次尝试调用它时才起作用。
已尝试使用和不使用编码选项的READ_CSV。还尝试了ERROR_BAD_LINES=FALSE。
这快把我逼疯了。有什么主意吗?如果这与系统问题有关,至少我想知道如何获得问题行的行号。
(我使用指定为etf-8
的编码从matlab中导出表(还尝试了CP949
,这是我的系统的默认编码)。从SAS导入成功。)
1条答案
按热度按时间ru9i0ody1#
使用
pandas.read_csv
时,可以传递各种参数。其中之一是encoding
,它将允许字符翻译。如果您想了解更多关于编码的知识,this可能是一个很好的起点。因为有很多编码,并且无法访问OP的数据,所以您可能想看看这个页面,在这里您可以找到Python标准编码。
然后,假设文件名为
data.csv
,则必须按如下方式使用同样,编码列表很多,所以我建议OP根据OP的用例进行调整。
从
pandas
版本1.3.0开始,添加了参数encoding_errors
(see this PR)。这会影响编码错误的处理方式。请在此处查看可能值的列表。如果想要
replace
,考虑到上面使用的编码,那么以下代码应该可以完成工作