這里介紹一個在read_csv()時報錯的原因為:(加工字為位置可以任意)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 0: invalid continuation byte
來吧瞅瞅:
代碼:
df_w = pd.read_table( r'C:\Users\lab\Desktop\web_list_n.txt', sep=',', header=None)
當我用pandas的read_table方法讀取本地文件時,爆出這個錯誤:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 0: invalid continuation byte
查詢一番,找到了原來這就是Python 編碼中最常見也是最頑固的兩個錯誤:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 0-1: invalid continuation byte
也就是編碼解碼的問題,我這個錯誤就是‘utf-8’不能解碼位置52的那個字節(0xce),也就是這個字節超出了utf-8的表示范圍了,編碼解碼詳細請參見https://segmentfault.com/a/1190000004625718
解決辦法:
df_w = pd.read_table( r'C:\Users\lab\Desktop\web_list_n.txt', encoding='ISO-8859-1', sep=',', header=None)
也就是在讀取數據的時候,顯式添加編碼方式encoding='ISO-8859-1',別的編碼也可以試試喲
但是:這種方法使用后會發現英文的內容顯示正常,但是文件中的中文會亂碼,所以不行
繼續:
使用了這個人的方法:https://blog.csdn.net/kelindame/article/details/75014485
結論不行!
使用了這個人的方法:https://blog.csdn.net/weixin_37029453/article/details/78917066
還是結論不行!
====================解決方法==============================
加上這些帶#號的亂七八糟東西就可以了
#-*- coding : utf-8-*- # coding:unicode_escape import pandas as pd import numpy as np import matplotlib.pyplot as plt io = r'C:\Users\Hou\Downloads\query-hive-191685.csv' idk=r'C:\Users\Hou\Downloads\query-hive-191744.csv' #data=pd.read_csv(io,encoding='unicode_escape') data=pd.read_csv(io,encoding='gbk')
說真的國內網站,唉
看了這個人的文章試了一下,可以了
https://blog.csdn.net/qq_35892623/article/details/82941473