Python 检查列中是否存在行并返回True或False
我试图检查一行是否存在于另一列的任何位置,并在名为“check”的列中返回True/False 具体地说,我试图查找名为“关键字”的列中的值,并检查它是否存在于名为“描述”的列中 每个要检查的关键字都是2个单词+并且我希望按照确切的顺序查找单词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
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个单词+个单词。此解决方案将描述值拆分为无法匹配的单个单词。请编辑您的问题,以获得具有预期输出的适当样本数据。按要求编辑。再次感谢您的帮助。