例如,我有以下表格:
index,A,B
0,0,0
1,0,8
2,0,8
3,1,0
4,1,5
Run Code Online (Sandbox Code Playgroud)
分组后A:
0:
index,A,B
0,0,0
1,0,8
2,0,8
1:
index,A,B
3,1,5
4,1,3
Run Code Online (Sandbox Code Playgroud)
我需要的是从每个组中删除行,其中列中的数字B小于组列中所有行的最大值B.好吧,我有一个问题,将这个问题翻译成英文,所以这里是一个例子:
B组中列的行的最大值0:8
所以我想用指数下降一行0,并保持与行的索引1和2
B组中列中行的最大值1:5
所以我想删除带索引的行并使用索引4保持行3
我曾尝试使用pandas过滤功能,但问题是它一次在组中的所有行上运行:
data = <example table>
grouped = data.groupby("A")
filtered = grouped.filter(lambda x: x["B"] == x["B"].max())
Run Code Online (Sandbox Code Playgroud)
所以我理想需要的是一些过滤器,它遍历组中的所有行.
感谢帮助!
PS是否还有方法只删除组中的行而不返回DataFrame对象?