Pandas:每组的最大值索引[英] Pandas: index of max value for each group

本文是小编为大家收集整理的关于Pandas:每组的最大值索引的处理方法,想解了Pandas:每组的最大值索引的问题怎么解决?Pandas:每组的最大值索引问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我的 Pandas DataFrame,df,如下所示:

parameter1   parameter2   value

1            1            0.1
             2            0.2

2            1            0.6
             2            0.3

value 是 groupby(['parameter1','parameter2']).mean() 在另一个 DataFrame 上的结果.现在,我可以使用 parameter1 的每个值找到 value 的最大值

df.max(level='parameter1')

但是,我需要为这个最大值找到 parameter2 的对应值.df.idxmax() 似乎不支持 level=,那我该怎么做呢?

推荐答案

我终于找到了一个窍门:

在级别 0(参数 1)上分组并应用 idxmax() 并获取值:

v = df.groupby(level=0).idxmax().values
v
array([[(1, 2)],
       [(2, 1)]], dtype=object)

这就是 df.idxmax(level=0) 如果实施的话.

所以 v 包含给出该级别最大值的索引.所以你可以得到真正的价值:

df.loc[v.ravel()]

                       value
parameter1 parameter2       
1          2             0.2
2          1             0.6

最后得到max values对应的parameter2的值:

df.loc[v.ravel()].index.values[1]
(2, 1)

HTH

本文地址:https://www.itbaoku.cn/post/1727980.html