Pandas:按多列分组,查找最大值并将其他列保留在数据框中

use*_*018 7 max dataframe pandas pandas-groupby

我希望将数据框中的多个列分组,仅保留最大值,并保留相应的日期列

下面是数据框的样子:

指数 地点 设备类型 价值 时间
0 AAA A 10 2021-02-02 01:30:00
1 AAA A 5 2021-02-02 01:35:00
2 AAA 2 2021-02-02 01:40:00
3 血脑屏障 C 3 2021-02-02 02:00:00
4 血脑屏障 C 11 2021-02-02 02:05:00
5 血脑屏障 C 20 2021-02-02 02:10:00
6 血脑屏障 D 30 2021-02-02 04:00:00

我正在尝试获得以下输出:

指数 地点 设备类型 价值 时间
0 AAA A 10 2021-02-02 01:30:00
1 AAA 2 2021-02-02 01:40:00
2 血脑屏障 C 20 2021-02-02 02:10:00
3 血脑屏障 D 30 2021-02-02 04:00:00

当我尝试以下 groupby 时,时间列会下降: df_max = df.groupby(['Site','Device Type'],as_index=False)['Value'].max()

我希望保持时间值与找到的最大值相对应。

谢谢

Pyg*_*irl 11

你们非常接近。尝试使用idxmax并在该位置显示行:

df.loc[df.groupby(['Site','Device Type'])['Value'].idxmax()].reset_index(drop=True)
Run Code Online (Sandbox Code Playgroud)
    Index   Site    Device Type Value   Time
0   0       AAA     A           10      2021-02-02 01:30:00
1   2       AAA     B           2       2021-02-02 01:40:00
2   5       BBB     C           20      2021-02-02 02:10:00
3   6       BBB     D           30      2021-02-02 04:00:00
Run Code Online (Sandbox Code Playgroud)