python - 在 pandas 中使用 groupby 过滤数据

标签 python pandas dataframe

我有一个 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/

相关文章:

python - 添加两个带有 2D 掩码的 3D numpy 数组

python - 如何为 python 脚本更新数据库编写 makefile?

python - Pandas convert_to_r_dataframe 函数 KeyError

python - 如何使用 python 和 pandas 导入 Excel 文件并搜索特定记录?

python - 如何迭代 pandas 中的行并与数据帧的其余部分进行比较

python - Pandas 数据框 : how to group by values in a column and create new columns out of grouped values

python - Pandas:在一行中删除多索引中的一个级别

python - 根据另一列的条件从一列的多个连续行聚合字符串数据

python正弦和余弦精度

python - 如何控制scikit-learn决策树算法的精度