如果我有这个df具有 41,000 行的数据框包含数千个单词,例如像这样df:
column1 column2
better spotted better rights rights rights fresh fresh rights rights 2015
better rights reserved 2016
better 2015
better horse 2014
我得到了每个单词的频率df to df2用这个代码:
df2 = df['column1'].str.split(expand=True).stack().value_counts()
and my df2看起来像这样:
keywords counts
spotted 1
better 5
fresh 2
rights 6
horse 1
reserved 1
那么如何删除所有keywords in df其中有计数低于 5 次基于df2那么那么df看起来像这样:
column1 column2
better better rights rights rights rights rights 2015
better rights 2016
better 2015
better 2014
我的初步尝试是列出关键字df2像这样:
ListKeywords = ['spotted', 'fresh', 'horse', 'reserved']
然后简单地删除里面的所有单词列出关键词 from df用这个代码:
df['column1'] = df['column1'].apply(lambda x: ' '.join([word for word in x.split() if word not in (ListKeywords)]))
然后我感到很沮丧,因为我有 15,000 个关键字,而所有行中的字数都低于 5 次。这意味着我必须将 15,000 个关键字放入列出关键词,这太疯狂了。
任何人都可以帮助我摆脱这种沮丧吗?谢谢