【问题标题】:Python Multiindex Dataframe remove maximumPython Multiindex Dataframe删除最大值
【发布时间】:2018-09-15 02:02:46
【问题描述】:

我在 python pandas 中使用 MultiIndex DataFrame。

假设我有一个这样的 df:

                    count    day     
group    name

  A      Anna        10      Monday
         Beatrice    15      Tuesday

  B      Beatrice    15      Wednesday
         Cecilia     20      Thursday

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

最终的 df 看起来像:

                    count    day     
group    name

  A      Anna        10      Monday

  B      Beatrice    15      Wednesday

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

提前致谢!

编辑:

如果原始数据框是:

                   count    day     
group    name

  A      Anna        10      Monday
         Beatrice    15      Tuesday

  B      Beatrice    20      Wednesday
         Cecilia     15      Thursday

最后的df必须是:

                    count    day     
group    name

  A      Anna        10      Monday

  B      Beatrice    20      Wednesday

【问题讨论】:

  • 我需要找到每个组的“最大”名称。在这种情况下,A 组中的最大名称是 Beatrice(因为 B 比 A“大”)和 B 组中的 Cecilia(因为 C 比 B 大)。然后我需要将其从数据框中删除。
  • 请检查我的更新答案...

标签: python pandas dataframe multi-index


【解决方案1】:

更新:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 2021-12-25
    • 2022-10-25
    • 1970-01-01
    • 2021-11-23
    • 2019-08-26
    相关资源
    最近更新 更多