A B C
0 01:00:00 24 Andrew
1 01:00:00 17 Edd
2 01:00:00 12 Emma
3 01:00:00 18 Fred
4 02:00:00 38 Andrew
5 02:00:00 35 Edd
6 02:00:00 45 Emma
7 02:00:00 49 Fred
我想为每个A
组选择一行,条件如下:
02:00:00
组中,B
最小值为35
,因此取值为(35+10=45)B
的行李>B
值。示例:在01:00:00
组中,最小值是12,但它没有´t存在(12+10=22)。所以取下一个较低的B值,即18
李>输出应为:
A B C
0 01:00:00 18 Fred
1 02:00:00 45 Emma
我´我试过了:
df[df.groupby('A')['B'].transform('min') + 10 <= df['B']]
使用带有^{} 的自定义lambda函数返回第一个最大行,同时将条件更改为
>
:或者首先过滤出每个组中具有更高值的所有行,然后按列} 筛选^{} ,只保留最后一个重复行:
B
和最后^{相关问题 更多 >
编程相关推荐