Python 检查列中是否存在行并返回True或False

Python 检查列中是否存在行并返回True或False,python,pandas,dataframe,Python,Pandas,Dataframe,我试图检查一行是否存在于另一列的任何位置,并在名为“check”的列中返回True/False 具体地说,我试图查找名为“关键字”的列中的值,并检查它是否存在于名为“描述”的列中 每个要检查的关键字都是2个单词+并且我希望按照确切的顺序查找单词 Keyword Description Check spam spam spam spam foo bar True spam foo

我试图检查一行是否存在于另一列的任何位置,并在名为“check”的列中返回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)
这将检查关键字是否在匹配行中,但我需要检查它是否存在于整个列中的任何位置。谢谢

您可以对值列表使用方法。因此,您需要一个适当的
列表
,其中包含
说明
列值:

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
您可以对值的
列表使用方法。因此,您需要一个适当的
列表
,其中包含
说明
列值:

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

谢谢你的回复。我应该给出一个更好的例子,但是关键字列中的关键字长度为2个单词+个单词。此解决方案将描述值拆分为无法匹配的单个单词。请编辑您的问题,以获得具有预期输出的适当样本数据。按要求编辑。再次感谢您的帮助。谢谢您的回复。我应该给出一个更好的例子,但是关键字列中的关键字长度为2个单词+个单词。此解决方案将描述值拆分为无法匹配的单个单词。请编辑您的问题,以获得具有预期输出的适当样本数据。按要求编辑。再次感谢您的帮助。