關註上方「數據小鄭」,選擇星標,數據分析職場之路我們一起走!
文章導讀:
本文主要 解決python在讀入文件時的報錯:ParserError:Error tokenizing data.C error:Expected x fields in line nnn,saw y。
文章分為兩部分,第一部分解釋報錯的意思,定位原因;第二部分給出解決方法。
1.報錯原因
在使用Pandas.read_csv(filepath)方法讀取csv文件時,可能會出現以下錯誤:
ParserError:Error tokenizing data.C error:Expected 2 fields in line 407,saw 3.這句話的意思是,在CSV文件的第407行數據,期待2個欄位,但是第407行實際發現3個欄位。
出現問題的原因是,header只有兩個欄位名,但是數據的第407行卻出現了3個欄位(可能是該行數據包含了逗號,或者確實有三部分),導致Pandas不知道如何處理。
2.解決辦法:
把407行多出的欄位刪除,或者通過在read_csv方法中設置error_bad_line=False來忽略這種錯誤:
代碼如下,其中encoding='utf-8'是為了讀取中文,默認是C engine,當文件名中含有中文時,用C engine 在部分情況在就會出錯,所以在調用read_csv方法時指定engine為python就可以解決。
pandas.read_csv(filepath,error_bad_lines=False,encoding='utf-8',engine='python')