首页 > 解决方案 > 根据 groupby 条件删除 pandas 数据帧行

问题描述

我有一个如下所示的熊猫数据框

    text    name    target
0   str1    name1   1
1   str1    name2   3
2   str1    name2   3
3   str2    name1   2
4   str2    name1   2
5   str2    name1   4
6   str3    name3   3

我需要删除那些只出现一次目标类的行。在这种情况下,我需要删除行索引0,因为并且只出现一次。514

我查看了这篇文章并在下面尝试:

df[df.groupby(['target']).transform('sum') > 1]

但这似乎不起作用。有人可以建议吗?

标签: pythonpandas

解决方案


希望这就足够了:过滤掉目标计数不大于 1 的行

df.groupby('target').filter(lambda x: x.count().gt(1).any())

    text    name    target
1   str1    name2   3
2   str1    name2   3
3   str2    name1   2
4   str2    name1   2
6   str3    name3   3

推荐阅读