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