python - Pandas 复制数据框只保留具有相同索引的行的最大值

标签 python pandas dataframe

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

    value   otherstuff
0     4         x
0     5         x
0     2         x
1     2         x
2     3         x
2     7         x

什么是获得看起来像的新数据框的简洁方法

    value   otherstuff
0     5         x
1     2         x
2     7         x

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

最佳答案

您可以将 maxlevel=0 一起使用:

df.max(level=0)

输出:

   value otherstuff
0      5          x
1      2          x
2      7          x

或者,解决评论中提到的其他列:

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

输出:

   value otherstuff
0      5          x
1      2          x
2      7          x

关于python - Pandas 复制数据框只保留具有相同索引的行的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45527627/

相关文章:

python pandas dataframe 添加带有过滤条件的总列

python pandas时间序列年提取

python - 网页源代码的固有保存方式

python - 如何按类标签或任何特定列对 Pandas 数据框进行排序/分组

python - 使用基于身份的身份验证的 Azure Function App Blob 触发器返回 powershell 错误

python - 如何在 Pandas Dataframe 中按列值分组

python - 如何通过同时使用 loc 和列名来删除数据框中的多列

python - 在数据帧上应用 python-geohash 编码函数

python - “模块”对象没有属性 'question' 。类名被视为属性吗?

python - 构造除numpy中的一个元素外所有元素为零的矩阵的有效方法