为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas:如何检查列中的第 n 个字符是否在指定列表中并替换它?

Pandas:如何检查列中的第 n 个字符是否在指定列表中并替换它?

哆啦的时光机 2023-09-26 17:08:47
数据框如下所示: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


查看完整回答
反对 回复 2023-09-26
  • 1 回答
  • 0 关注
  • 50 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信