目標是查找列中的每個單元格是否包含一組字符串中的任一字符串。給出下面的 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,因此此模式不會標記maybe
為True
.

慕勒3428872
TA貢獻1848條經驗 獲得超6個贊
您可以apply
為此使用:
dfxx=df['Date'].apply(lambda x: any([i in x for i in stk_list])
添加回答
舉報
0/150
提交
取消