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

无法根据子字符串集过滤熊猫数据框

无法根据子字符串集过滤熊猫数据框

慕斯709654 2023-02-22 19:19:09
目标是查找列中的每个单元格是否包含一组字符串中的任一字符串。给出下面的 df;df = pd.DataFrame({'Date': ['1 December 2020', 'May 2020', 'Random value', 'may 2019']})和一个标志子字符串stk_list = ['December','May']它应该返回True; True; False; True但是,使用下面的代码stk_list = ['December','May']df = pd.DataFrame({'Date': ['1 December 2020', 'May 2020', 'Random value', 'may 2019']})dfxx=df['Date'].isin(stk_list)它返回False; False;False;False我可以知道我哪里做错了吗?
查看完整描述

2 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

regex您可以为此目的使用:

pattern = '|'.join(s.lower() for s in stk_list)

df.Date.str.lower().str.contains(pattern)

您可能需要修改pattern,以便它只检查整个单词:

pattern = r"\b({})\b".format('|'.join(s.lower() for s in stk_list))

这里\b表示单词 boudary,因此此模式不会标记maybeTrue.


查看完整回答
反对 回复 2023-02-22
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

您可以apply为此使用:

dfxx=df['Date'].apply(lambda x: any([i in x for i in stk_list])


查看完整回答
反对 回复 2023-02-22
  • 2 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号