Python pandas - filter rows after groupby 在使用Python pandas进行groupby之后筛选行
- 论坛
- Python pandas - filter rows after groupby 在使用Python pandas进行groupby之后筛选行
10 浏览
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
的行,保留索引1
和2
的行
在分组1
中,列B
的最大值为5
所以我想删除索引4
的行,保留索引3
的行
我尝试使用pandas的过滤函数,但问题是它是一次操作该组中的所有行:
data = <示例表格> grouped = data.groupby("A") filtered = grouped.filter(lambda x: x["B"] == x["B"].max())
所以我理想情况下需要的是一种过滤器,可以迭代该组中的所有行。
谢谢帮助!
附注:是否还有一种方法只删除分组中的行而不返回DataFrame
对象?