如果我有这个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到df2的每个单词的频率:
df2 = df['column1'].str.split(expand=True).stack().value_counts()
我的df2看起来像这样:
keywords counts
spotted 1
better 5
fresh 2
rights 6
horse 1
reserved 1
然后如何删除df中基于df2计数低于 5 次的所有关键字,那么df将如下所示:
column1 column2
better better rights rights rights rights rights 2015
better rights 2016
better 2015
better 2014
我最初的尝试是从df2制作关键字列表,如下所示:
ListKeywords = ['spotted', 'fresh', 'horse', 'reserved']
然后使用以下代码从df中删除ListKeywords中的所有单词:
df['column1'] = df['column1'].apply(lambda x: ' '.join([word for word in x.split() if word not in (ListKeywords)]))
然后我很沮丧,因为我有 15,000 个关键字,所有行中的字数都低于 5 次。这意味着我必须将这 15,000 个关键字放入ListKeywords,这太疯狂了。
任何人都可以帮助我摆脱这种沮丧吗?谢谢你
明月笑刀无情
相关分类