为啥在指定编码 utf-8 时 pandas read_csv 会出现 unicode 错误? [复制]
Posted
技术标签:
【中文标题】为啥在指定编码 utf-8 时 pandas read_csv 会出现 unicode 错误? [复制]【英文标题】:Why does pandas read_csv have unicode error when encoding utf-8 is specified? [duplicate]为什么在指定编码 utf-8 时 pandas read_csv 会出现 unicode 错误? [复制] 【发布时间】:2019-01-21 04:13:21 【问题描述】:在 Jupyter 5.000 笔记本中执行以下 Python 3.6 代码时:
import pandas as pd
file = "C:\users\frogf\MSDS7333\data\HIGGS.csv"
data=pd.read_csv(file,nrows=N,header=None,encoding = "utf-8")
它给出了错误:
File "<ipython-input-5-204f62a7e8b4>", line 2
file = "C:\users\frogf\MSDS7333\data\HIGGS.csv"
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \uXXXX escape
【问题讨论】:
可能是因为该文件实际上不是有效的 UTF-8 - 该行中的内容到底是什么? 您需要转义反斜杠或传递原始字符串:file = r"C:\users\frogf\MSDS7333\data\HIGGS.csv"
'\u'
是一个 unicode 转义序列,如果这是我投票关闭的错误,因为它是一个错字跨度>
它是一个来自 Keras 2.6 GB 下载的大型数据集。
@EdChum 看起来和我完全一样...位置 2 和 3 是 \u
,它不是原始字符串...
添加转义字符有效。抱歉问了个愚蠢的问题,请关闭它。
【参考方案1】:
将文件作为原始字符串打开。试试:
import pandas as pd
data=pd.read_csv(r"C:\users\frogf\MSDS7333\data\HIGGS.csv",nrows=10,header=None,encoding = "utf-8")
【讨论】:
以上是关于为啥在指定编码 utf-8 时 pandas read_csv 会出现 unicode 错误? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
当我的 Perl 程序在 cmd.exe 中输出 UTF-8 编码字符串时,为啥我会重复最后一个八位字节?
C# 对URL进行UTF-8编码 编码时为啥会把中文后面的第一个字母也转成了UTF-8呢?
为啥用editplus写java时,把编码形式UTF-8改ANSI后保存,重新进去还是UTF-8?