熊猫检查行是否存在于列中,并返回True或False

时间:2020-11-08 11:18:37

标签: python pandas dataframe

我正在尝试检查另一列中的任意位置是否存在一行,并在名为“检查”的列中返回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)

这将检查关键字是否在匹配行中,但是我需要检查它是否存在于整个列中的任何位置。谢谢!

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