python pandas:按A列删除重复项,不满足B列中的条件

时间:2021-07-07 12:25:50

标签: python pandas

我有一个在 A 列中有重复值的数据框。我想删除重复项,在 B 列中保留其值 > 0 的行

所以:

A B
1 20
1 10
1 -3
2 30
2 -9
2 40
3 10

应该变成这样:

A B
1 20
1 10
2 30
2 40
3 10

关于如何实现这一目标的任何建议?我将不胜感激!

1 个答案:

答案 0 :(得分:0)

样本数据不是重复的,所以只使用:

df = df[df['B'].gt(0)]
print (df)
   A   B
0  1  20
1  1  10
3  2  30
5  2  40
6  3  10

如果有重复:

print (df)
   A   B
0  1  20
1  1  10
2  1  10
3  1  10
4  1  -3
5  2  30
6  2  -9
7  2  40
8  3  10

df = df[df['B'].gt(0) & ~df.duplicated()]
print (df)
   A   B
0  1  20
1  1  10
5  2  30
7  2  40
8  3  10