Python常見warning或error原因及解決方案
阿新 • • 發佈:2018-12-13
一般講warning是不會影響取值的,可忽略,全忽略如下:
import warnings
warnings.simplefilter('ignore')
#warnings.filterwarnings(action='ignore',category=UserWarning,module='gensim')
SettingWithCopyWarning
一、原因:賦值警告,警告會改變變數自身(如給已有值變數列賦值等)。即B是從A而來,改B值和可能也會改A,所以會報警
例如:
c9_1=c9_0[c9_0['websitemain']>=2].copy() # 因c9_1來自於c9_0,而非新建,所以當沒有copy下面更改其值(新增列,修改列值等)會報錯 c9_1.columns=['Times'] # 用於識別是一類網頁,主網址出現次數 c9_1.index.name='websitemain' c9_1['num']=np.arange(1,len(c9_1)+1) #此處可能會報錯,因修改c9_1可能會涉及c9_0
一、解決辦法:新建接收變數,不更改變數自身
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 0: invalid start byte
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa3 in position 34: illegal multibyte sequence
二、原因:原始檔字元編碼格式非Python編碼環境UTF-8格式,導致不相容
二、解決辦法:
1、將原始檔字元編碼格式調整為UTF-8即可; 2、with open(inputfile1,'r',encoding='UTF-8') as data1: #with方法,自動關閉 data1 = pd.read_csv(data1,header = None) #讀入資料
中文檔名讀取fail
OSError: Initializing from file failed
三、原因:read_csv()讀取帶中文名txt,報錯
三、解決辦法:f = open(‘我的檔案.csv’);res = pd.read_csv(f)或者檔名改英文
【待續】