我有一个 DataFrame,其中包含以下数据。每行代表电视剧每集中出现的一个单词。如果一个单词在一个剧集中出现 3 次,则 pandas 数据框有 3 行。现在我需要过滤一个单词列表,这样我应该只得到出现超过或等于 2 次的单词。我可以通过以下方式做到这一点groupby
,但如果一个单词出现 2 次(或者说 3,4 或 5)次,我需要两行(3、4 或 5)行。
通过 groupby,我只会获得唯一的条目并进行计数,但我需要条目重复出现在对话中的次数。有没有单行代码可以做到这一点?
dialogue episode
0 music 1
1 corrections 1
2 somnath 1
3 yadav 5
4 join 2
5 instagram 1
6 wind 2
7 music 1
8 whimpering 2
9 music 1
10 wind 3
所以在这里我理想地应该得到,
dialogue episode
0 music 1
6 wind 2
7 music 1
9 music 1
10 wind 3
因为这是唯一出现次数超过或等于 2 次的 2 个单词。
您可以使用 groupby 的filter http://pandas.pydata.org/pandas-docs/stable/groupby.html#filtration:
In [11]: df.groupby("dialogue").filter(lambda x: len(x) > 1)
Out[11]:
dialogue episode
0 music 1
6 wind 2
7 music 1
9 music 1
10 wind 3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)