每组的最大值指数

每组的最大值指数

本文介绍了 pandas :每组的最大值指数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Pandas DataFrame df看起来像这样:

My Pandas DataFrame, df, looks like this:

parameter1   parameter2   value

1            1            0.1
             2            0.2

2            1            0.6
             2            0.3

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

value is the result of a groupby(['parameter1','parameter2']).mean() on another DataFrame. Now, I can find the maximum value of value for each value of parameter1 using

df.max(level='parameter1')

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

However, I need to find the corresponding value of parameter2 for this maximum value. It seems df.idxmax() does not support level=, so how can I do this instead?

推荐答案

我最终找到了一个窍门:

I eventually found a trick:

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

Groupby on level 0 (parameter1) and apply idxmax() and get the values:

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

如果实施,这就是df.idxmax(level=0)将给出的内容.

This is what df.idxmax(level=0) would give if implemented.

因此,v包含给出该级别最大值的索引.因此,您可以通过以下方式获得实际值:

So v contains the index giving the max value for that level. So you can get the real values with:

df.loc[v.ravel()]

                       value
parameter1 parameter2
1          2             0.2
2          1             0.6

并最终获得与最大值对应的parameter2的值:

and finally get the value of parameter2 corresponding to max values:

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

HTH

这篇关于 pandas :每组的最大值指数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-10 22:08