目的是找出一列中的每个单元格是否包含一组字符串中的一个字符串。
给定下面的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
我可以知道我在哪里做错了吗?
您可以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,因此该模式不会标记maybe
为True
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句