我有一个 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
:
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
关于python - 在 pandas 中使用 groupby 过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38544301/