使用pandas中的groupby过滤数据

Amr*_*hna 3 python dataframe pandas

我有一个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
Run Code Online (Sandbox Code Playgroud)

所以我应该理想地得到,

   dialogue  episode
0     music        1
6      wind        2
7     music        1
9     music        1
10     wind        3
Run Code Online (Sandbox Code Playgroud)

因为这些是出现超过或等于2次的唯一2个单词.

And*_*den 5

你可以使用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
Run Code Online (Sandbox Code Playgroud)