Python Multiindex Dataframe 删除最大值

Pio*_*otr 3 python multi-index dataframe pandas

我在 python pandas 中与 MultiIndex DataFrame 苦苦挣扎。

假设我有一个这样的 df:

                    count    day     
group    name

  A      Anna        10      Monday
         Beatrice    15      Tuesday

  B      Beatrice    15      Wednesday
         Cecilia     20      Thursday
Run Code Online (Sandbox Code Playgroud)

我需要的是找到每个组的名称最大值并将其从数据框中删除。

最终的 df 看起来像:

                    count    day     
group    name

  A      Anna        10      Monday

  B      Beatrice    15      Wednesday
Run Code Online (Sandbox Code Playgroud)

你们有没有人知道如何做到这一点?我的想法不多了...

提前致谢!

编辑:

如果原始数据帧是:

                   count    day     
group    name

  A      Anna        10      Monday
         Beatrice    15      Tuesday

  B      Beatrice    20      Wednesday
         Cecilia     15      Thursday
Run Code Online (Sandbox Code Playgroud)

最终的 df 需要是:

                   count    day     
group    name

  A      Anna        10      Monday
         Beatrice    15      Tuesday

  B      Beatrice    20      Wednesday
         Cecilia     15      Thursday
Run Code Online (Sandbox Code Playgroud)

Max*_*axU 5

更新:

In [386]: idx = (df.reset_index('name')
                   .groupby('group')['name']
                   .max()
                   .reset_index()
                   .values.tolist())

In [387]: df.loc[df.index.difference(idx)]
Out[387]:
                count        day
group name
A     Anna         10     Monday
B     Beatrice     20  Wednesday
Run Code Online (Sandbox Code Playgroud)
In [326]: df.loc[df.index.difference(df.groupby('group')['count'].idxmax())]
Out[326]:
                count        day
group name
A     Anna         10     Monday
B     Beatrice     15  Wednesday
Run Code Online (Sandbox Code Playgroud)

PS很可能有更好的方法来做到这一点......