pandas程式碼常見錯誤及解決方案
阿新 • • 發佈:2019-02-11
一、讀取資料
1. OSError: Initializing from file failed
pandas讀取檔案報這種錯誤時,一般是因為你的檔名中帶有中文,例如:
res = pd.read_csv('我的檔案.csv')
這種情況就會報錯,只需要這樣更改就可以:
f = open('我的檔案.csv')
res = pd.read_csv(f)
以上原文連結蘆金宇的部落格
不過,我的資料不是中文,也報了這個錯。雖然不明白原因,但是以上程式碼可解決此問題。
二、修改資料
1. 對DataFrame做修改但未生效
當我們對DataFrame做排序、去重等操作時,有時會發現DataFrame其實沒有變化,如下面的程式碼:
df.sort_values('A', ascending=False)
df.drop_duplicates('ID', keep='first')
這其實涉及python的淺複製和深複製的問題,上面的程式碼並沒有更改原來的DataFrame物件,需要新增引數inplace=True,如下:
df.sort_values('A', ascending=False, inplace=True)
df.drop_duplicates('ID', keep='first', inplace=True)
另外,也可以採用手動賦值的方式:
df = df.sort_values('A', ascending= False)
df = df.drop_duplicates('ID', keep='first')