Python 熊猫:每组的最大值索引

Python 熊猫:每组的最大值索引,python,pandas,dataframe,Python,Pandas,Dataframe,我的熊猫数据帧,df,如下所示: parameter1 parameter2 value 1 1 0.1 2 0.2 2 1 0.6 2 0.3 value是另一个DataFrame上的groupby(['parameter1','parameter2'])的结果。现在,我可以使用 df.max(le

我的熊猫数据帧,
df
,如下所示:

parameter1   parameter2   value

1            1            0.1
             2            0.2

2            1            0.6
             2            0.3
value
是另一个
DataFrame
上的
groupby(['parameter1','parameter2'])的结果。现在,我可以使用

df.max(level='parameter1')

但是,我需要找到此最大值的
参数2
的对应值。似乎
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
最后得到最大值对应的参数2的值:

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

一个好办法是

df.unstack().idxmax(axis=1)
取消对数据帧的堆栈将生成一个数据帧,其中
参数_1
作为列索引