例如,我有下表:
index,A,B
0,0,0
1,0,8
2,0,8
3,1,5
4,1,3
分组后按A
:
0:
index,A,B
0,0,0
1,0,8
2,0,8
1:
index,A,B
3,1,5
4,1,3
我需要的是从每个组中删除行,其中列中的数字B
小于组列中所有行的最大值B
。好吧,我在将这个问题翻译和表述为英语时遇到问题,所以这里是示例:
列中行的最大值B
在团体中0
: 8
所以我想删除带有索引的行0
并保留带有索引的行1
and 2
列中行的最大值B
在团体中1
: 5
所以我想删除带有索引的行4
并保留带有索引的行3
我尝试使用 pandas 过滤功能,但问题是它同时对组中的所有行进行操作:
data = <example table>
grouped = data.groupby("A")
filtered = grouped.filter(lambda x: x["B"] == x["B"].max())
所以我理想需要的是一些过滤器,它迭代组中的所有行。
感谢帮助!
附:还有没有办法只删除组中的行而不返回DataFrame
object?