數據框如下所示:ID Desc1 Hello2 How3 Have4 You5 Been我想檢查 Desc 的第三個字符是否在 ['A', 'B', 'C', 'D', 'E'] 中,不區分大小寫,并將其替換為 'Replaced'。我嘗試過的是:df.loc[df['Desc'].str[2] in ['A', 'B', 'C', 'D', 'E'] == True), 'Desc'] = 'Replaced'.但它會吐出一個錯誤The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().我該如何解決這個問題?
1 回答

HUWWW
TA貢獻1874條經驗 獲得超12個贊
試試這個,使用pd.Series.isin
:
df['Desc'].str[2].str.lower().isin([*'abcde'])
產量
0? ? False
1? ? False
2? ? False
3? ? False
4? ? ?True
Name: Desc, dtype: bool
現在:
df.loc[df['Desc'].str[2].str.lower().isin([*'abcde']), 'Desc'] = 'Replaced'
df
輸出:
? ?ID? ? ? Desc
0? ?1? ? ?Hello
1? ?2? ? ? ?How
2? ?3? ? ? Have
3? ?4? ? ? ?You
4? ?5? Replaced
添加回答
舉報
0/150
提交
取消