数据框如下所示: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
提交
取消