我潦草地记下数据,不得不将数据帧保存为 utf-16 (Unicode),因为拉丁语/西班牙语单词以 utf-8 的形式显示很奇怪。我使用以下代码来保存数据帧:
df.to_csv("blogdata.csv", encoding = "utf-16", sep = "\t", index = False)
Run Code Online (Sandbox Code Playgroud)
当我尝试使用以下代码读取文件以清理数据时:
blogdata = pd.read_csv('c:/Users/hyoungm?Downloads/blogdata.csv')
Run Code Online (Sandbox Code Playgroud)
它显示以下错误。
() ----> 1 blogdata = pd.read_csv('C:/Users/hyoungm/Downloads/blogdata.csv') 中的 UnicodeDecodeError Traceback(最近一次调用最后一次)
...
pandas._libs.parsers.TextReader 中的 pandas_libs\parsers.pyx。cinit ()
pandas._libs.parsers.TextReader._get_header() 中的 pandas_libs\parsers.pyx
UnicodeDecodeError: 'utf-8' 编解码器无法解码位置 0 中的字节 0xff:起始字节无效
我不知道如何在不丢失英文句子中的拉丁文/西班牙文单词的情况下保存原始数据,也不知道如何读取 Unicode 数据文件。有人可以帮我解决这个问题吗?
非常感谢!
小智 19
遇到同样的情况,你可以尝试
blogdata = pd.read_csv('c:/Users/hyoungm?Downloads/blogdata.csv',sep = "\t", encoding='latin')
Run Code Online (Sandbox Code Playgroud)
小智 7
当编码未知时,有一个 Python 库可能会有所帮助:chardet
with open(filename, 'rb') as file:
print(chardet.detect(file.read()))
Run Code Online (Sandbox Code Playgroud)
检测找到编码,'rb' 将以二进制形式读取文件
您似乎正在尝试使用 utf-8 编解码器来解码 utf-16 编码文件。
根据pandas 文档encoding,您可以通过将参数传递给函数来指定编解码器read_csv()。
你能试试下面的代码吗?
blogdata = pd.read_csv('c:/Users/hyoungm?Downloads/blogdata.csv', encoding = 'utf-16')
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。如果有不清楚的地方请告诉我。
编辑:我想正确的文件路径应该是“c:/Users/hyoungm/Downloads/blogdata.csv”,在“hyoungm”和“Downloads”之间有一个“/”,所以如果我是对的,请相应地调整脚本。
| 归档时间: |
|
| 查看次数: |
20706 次 |
| 最近记录: |