Python pandas - filter rows after groupby 在使用Python pandas进行groupby之后筛选行

10 浏览
0 Comments

Python pandas - filter rows after groupby 在使用Python pandas进行groupby之后筛选行

举个例子,我有以下表格:

索引,A,B

0,0,0

1,0,8

2,0,8

3,1,5

4,1,3

按照A进行分组后:

0:

索引,A,B

0,0,0

1,0,8

2,0,8

1:

索引,A,B

3,1,5

4,1,3

我需要从每个分组中删除列B中小于该组中所有行的最大值的行。我在将这个问题翻译和表述成英文方面遇到了问题,下面是例子:

在分组0中,列B的最大值为8

所以我想删除索引0的行,保留索引12的行

在分组1中,列B的最大值为5

所以我想删除索引4的行,保留索引3的行

我尝试使用pandas的过滤函数,但问题是它是一次操作该组中的所有行:

data = <示例表格>
grouped = data.groupby("A")
filtered = grouped.filter(lambda x: x["B"] == x["B"].max())

所以我理想情况下需要的是一种过滤器,可以迭代该组中的所有行。

谢谢帮助!

附注:是否还有一种方法只删除分组中的行而不返回DataFrame对象?

0