使用第三个值从数据框中提取两个值

Extracting two values from dataframe using third value

我有一个这样的数据框:

ID  TYPE     VALUE 
1     h        45
1     l        50
2     g        60
2     h        99
2     l        65
3     h        11
3     l        13
3     k        22 

我需要根据每个 ID 的最大 VALUE 提取 ID 和 TYPE。

结束于

1     l
2     h
3     k

刚刚开始 Python 甚至不知道从哪里开始。

提前致谢!

您需要一些 pandas 功能,尤其是 groupby():

idx = df.groupby(['ID'])['VALUE'].transform(max) == df['VALUE']
df[idx]

产生

    ID  TYPE    VALUE
1   1   l       50
3   2   h       99
7   3   k       22

您想使用 groupby together with idxmax:

df[df.groupby(['ID'])['VALUE'].idxmax()]

    ID  TYPE    VALUE
1   1   l       50
3   2   h       99
7   3   k       22