熊猫复制数据框仅保留具有相同索引的行的最大值

Jak*_*ris 2 python dataframe pandas

如果我有一个看起来像的数据框

    value   otherstuff
0     4         x
0     5         x
0     2         x
1     2         x
2     3         x
2     7         x
Run Code Online (Sandbox Code Playgroud)

什么是获得新数据框的简洁方法

    value   otherstuff
0     5         x
1     2         x
2     7         x
Run Code Online (Sandbox Code Playgroud)

在哪里删除了具有相同索引的行,因此仅保留具有最大“值”的行?据我所知,df.drop_duplicates中没有选项可以保留最大值,只有第一个或最后一个出现。

Sco*_*ton 5

你可以用maxlevel=0

df.max(level=0)
Run Code Online (Sandbox Code Playgroud)

输出:

   value otherstuff
0      5          x
1      2          x
2      7          x
Run Code Online (Sandbox Code Playgroud)

或者,解决注释中提到的其他列:

df.groupby(level=0,group_keys=False)\
  .apply(lambda x: x.loc[x['value']==x['value'].max()])
Run Code Online (Sandbox Code Playgroud)

输出:

   value otherstuff
0      5          x
1      2          x
2      7          x
Run Code Online (Sandbox Code Playgroud)