Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据groupby条件删除数据帧行_Python_Pandas - Fatal编程技术网

Python 根据groupby条件删除数据帧行

Python 根据groupby条件删除数据帧行,python,pandas,Python,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和5需要删除,因为1和4只出现一次 我在下面查看

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

    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
5
需要删除,因为
1
4
只出现一次

我在下面查看并尝试:

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

但这似乎不起作用。有人能提出建议吗?

希望这足够了:过滤掉目标计数不大于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

希望这样就足够了:过滤掉目标计数不大于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

您可以使用
值\u计数
、映射和筛选:

print(df[df.target.map(df.target.value_counts()).gt(1)])
输出:

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

您可以使用
值\u计数
、映射和筛选:

print(df[df.target.map(df.target.value_counts()).gt(1)])
输出:

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