相关疑难解决方法(0)

Python pandas - 在groupby之后过滤行

例如,我有以下表格:

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,并保持与行的索引12

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对象?

python lambda group-by filter pandas

36
推荐指数
3
解决办法
6万
查看次数

标签 统计

filter ×1

group-by ×1

lambda ×1

pandas ×1

python ×1