2 回答

TA貢獻1864條經(jīng)驗 獲得超2個贊
您的堆棧跟蹤包含KeyError: 15,因此您可能嘗試檢索 key == just 15的行,但您的 DataFrame 不包含這樣的鍵。
現(xiàn)在如何正確有效地完成您的任務(wù)。在有問題的列上使用mask ,并使用inplace:
df.WEATHER.mask(df.WEATHER.str.lower().isin(['other', 'unknown']), np.nan, inplace=True)
為了提供正確的處理,無論字母大小寫如何(例如other或 OTHER),我將原始值轉(zhuǎn)換為小寫,然后與“禁止”列表進行比較。

TA貢獻1898條經(jīng)驗 獲得超8個贊
通常,您希望避免迭代 pandas DataFrame。我將這樣做:
>>> df.a
0 Other
1 Unknown
2 BLAH
Name: a, dtype: object
>>> df.a = np.choose(df.a.isin(['Other', 'Unknown']), [df.a, np.nan])
>>> df.a
0 NaN
1 NaN
2 BLAH
Name: a, dtype: object
isin()檢查每個值是否在預(yù)定義列表中['Other', 'Unknown'],并np.choose()根據(jù)調(diào)用的布爾結(jié)果賦予一個值isin()。結(jié)果要么是原始值,df.a要么是np.nan。
添加回答
舉報