1. 程式人生 > >Python常見warning或error原因及解決方案

Python常見warning或error原因及解決方案

一般講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)或者檔名改英文

【待續】