我正在尝试检查另一列中的任意位置是否存在一行,并在名为“检查”的列中返回True / False。
具体地说,我正在尝试在名为“关键字”的列中查找值,并检查它是否存在于名为描述的列中的任何地方。
要检查的每个关键字都超过2个单词,我正在寻找确切顺序的单词。
Keyword Description Check
spam spam spam spam foo bar True
spam foo True
spam bar False
spam spam foo True
spam bar False
我的代码:
df['Check'] = df.apply(lambda row: row['Keyword'] in row['Description'], axis=1)
这将检查关键字是否在匹配行中,但是我需要检查它是否存在于整个列中的任何位置。谢谢!
答案 0 :(得分:0)
您可以对list
个值使用Series.isin
方法。因此,您需要在list
列值中使用正确的Description
:
In [915]: vals = [x.split() for x in df.Description.values][0]
In [917]: df['Check'] = df.Keyword.isin(vals)
In [918]: df
Out[918]:
Keyword Description Check
0 spam eggs spam foo bar True
1 eggs True
2 house False
3 foo True
4 bar True
5 turtle False