我匯入并連接了幾個 csv 檔案。它們都包含變數“prac_type”,但觀察結果以不同的方式列出。有些是字串(是,否,不確定),而其他是數字(1,2,3)。下面看一下變數:
print(df.prac_type.unique())
[nan 1.0 2.0 3.0 '1' '2' 'Unsure']
但我只想將 1.0 合并為 1(因為它們代表相同的事物),將 2.0 合并為 2,將 3.0 合并為 3。我希望我的變數是這樣的:
print(df.prac_type.unique())
[ '1' '2' '3']
我試過這樣做:
prac_dic = {'1.0': 1,'2.0': 2 , '3.0':3, 'Unsure':3}
df.prac_type = [prac_dic[item] for item in df.prac_type]
print(df.prac_type.unique())
但是我收到一個錯誤 (KeyError: nan),因為我的變數 prac_type 有 NaN。不過,我不想放棄 NaN。那么如何讓我的代碼忽略缺失值并重新分配值呢?
uj5u.com熱心網友回復:
只需對 nan 值添加一項特殊檢查
df.prac_type = [prac_dic[item] if pandas.notnull(item) else np.nan for item in df.prac_type ]
https://pandas.pydata.org/docs/reference/api/pandas.isnull.html
uj5u.com熱心網友回復:
嘗試 df.prac_type = [prac_dic.get(item) for item in df.prac_type]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/400809.html
上一篇:在for回圈中僅乘以奇數索引
