Python错误-For和IF不在同一语句中

Python错误-For和IF不在同一语句中,python,nltk,stop-words,Python,Nltk,Stop Words,我使用的是Python3.5,我试图从我的数据集中删除NLTK stopWords,当我运行结合了For和For的a语句时&如果不是在一个语句中,我会得到一个错误。搜索错误没有产生任何有用的结果 下面附加的代码和错误快照在此处输入图像描述 base_data['stemmed_stop_comments'] = [word for word in base_data['stemmed_comments'] if not word in stopWords] ValueError:值的长度与索引

我使用的是Python3.5,我试图从我的数据集中删除NLTK stopWords,当我运行结合了For和For的a语句时&如果不是在一个语句中,我会得到一个错误。搜索错误没有产生任何有用的结果

下面附加的代码和错误快照在此处输入图像描述

base_data['stemmed_stop_comments'] = [word for word in base_data['stemmed_comments'] if not word in stopWords]
ValueError:值的长度与索引的长度不匹配


您似乎没有将基_数据中的键作为“词干注释”。使用这样的语句

base_data['stemmed_stop_comments'] = []

if 'stemmed_comments' in base_data:
    base_data['stemmed_stop_comments'] = [word for word in base_data['stemmed_comments'] if not (word in stopWords)]


什么是基础数据?熊猫
数据帧
?是的,熊猫数据帧!问题是,您正在为数据帧的一列分配一个列表,但您的维度不匹配(显然是因为您正在删除停止字…),数据帧中的行必须保持相同的长度。也许你可以用
None
'
替换停止词……好吧,我想我找到了解决办法@arrivillaga是对的,我试图给数据帧分配一个列表。通过编写一个单独的函数解决了这个问题。谢谢大家!:)是的,这是很好的风格建议,尤其是后者,但我怀疑这是问题所在。这绝对不是问题所在<代码>stopwords中的not word不会被解释为stopwords中的
(not word)
是的,你是对的,我尝试了不同的样式组合,但错误不会消失!好的,然后在使用此基础数据之前['stemmed_comments']检查基础数据更新我的回答中的'stemmed_comments',添加一些描述,解释解决方案。
if 'stemmed_comments' in base_data:
   base_data['stemmed_stop_comments'] = [word for word in base_data['stemmed_comments'] if word not in stopWords]
if 'stemmed_comments' in base_data:
     base_data['stemmed_stop_comments'] = filter(lambda word: word not in stopWords, base_data['stemmed_comments'])
def remove_stop(sentance):
   removed = [x for x in sentance.split(' ') if x.lower() not in stopWords]
   return ' '.join(removed)

base_data['stemmed_stop_comments'] = base_data.stemmed_comments.apply(lambda x: remove_stop(x))