Python 使用Lambda函数检查nltk单词列表中是否存在

Python 使用Lambda函数检查nltk单词列表中是否存在,python,pandas,lambda,Python,Pandas,Lambda,我有一列包含每个文本中的第一个单词,我试图检查它是否在nltk单词列表中。我的代码是: from nltk.corpus import words wordlist = words.words() reviews['test'] = reviews.apply(lambda x: True if x['FIRST_WORD'] in wordlist else False ) 我得到一个错误: KeyError: 'FIRST_WORD' 不知道为什么,因为这肯定是我的数据集中列的名称。la

我有一列包含每个文本中的第一个单词,我试图检查它是否在nltk单词列表中。我的代码是:

from nltk.corpus import words
wordlist = words.words()
reviews['test'] = reviews.apply(lambda x: True if x['FIRST_WORD'] in wordlist else False )
我得到一个错误:

KeyError: 'FIRST_WORD'

不知道为什么,因为这肯定是我的数据集中列的名称。lambda函数是否设置错误?

语法不正确。正确的语法是:

>>df
第一个单词第二个单词
0你好,废话
1嗨,废话
2 xyz等等
>>>df.apply(lambda x:True,如果单词列表中的x['FIRST_WORD'],否则为False,轴=1)
0对
1正确
2错误
数据类型:bool
>>>#或
>>>df['FIRST_WORD'].apply(lambda x:如果单词列表中的x为False,则为True)
0对
1正确
2错误
名称:第一个单词,数据类型:bool
也就是说,

  • 对于单个列上的操作,您可能需要检查和以查看
    map
    apply
    之间的差异
  • 下面是使用
    isin
    实现所需结果的另一种方法
  • df['FIRST_WORD'].isin(单词列表) 0对 1正确 2错误 名称:第一个单词,数据类型:bool