我有一个形状如下的列表:
temp5=[]
for i in range(0,len(df)):
temp5.append(df['text'][i].split())
df['each']=temp5
df['each']
结果是这样的:
现在我要删除上一个列表中的某些元素。我想检查上一个列表中的每个单词是否类似于以下列表,将其从中删除。第二个列表是这样的:
stopwords = open('stop_words.txt','r').read().split('\n')
print(stopwords)
现在,我编写了这段代码,以从第一个列表中删除每个列表的相同单词。但是我收到的只是一无所有。 你能帮我吗?
for k in range(0,len(df)):
for j in df['each'][k][:]:
for f in stopwords:
if f==j:
temp6.append(df['each'][k][:].remove(f))
print(temp6)
答案 0 :(得分:2)
如评论中所述,remove
方法可就地删除,但是如果您想要更多的“ pythonic”功能,则工作代码应为
temp5=[]
for i in range(0,len(df)):
temp5.append([x for x in df['text'][i].split() if x not in stopwords])
使用list comprehension,例如in this question,将创建过滤列表。或者,如果您坚持使用原始数据框作为输入,则可能是
temp5=[]
for i in range(0,len(df)):
temp5.append([x for x in df['each'][i] if x not in stopwords])