本文介绍了Python Dataframe根据列之一中的最大值选择行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在python中有一个数据框(很多行,两列).我想根据第2列中的最大值用第1列中的唯一值修改DF(第2列按升序排序(如果有帮助的话)).我可能可以编写一个循环,但希望使用一两行的解决方案.谢谢.

I have a dataframe in python (many rows, 2 columns). I want to modify the DF with a unique value in column 1 based on the largest value in column 2 (column 2 is sorted in ascending order if that helps). I could probably write a loop but would prefer a one or two line solution. Thanks.

例如.

ID         Value
100       11
100       14
100       16
200       10
200       20
200       30
300       45
400        0
400       25

期望的结果

100       16
200       30
300       45
400       25

推荐答案

您要 groupby ,然后使用 idxmax 并使用这些索引来索引原始df:

You want to groupby on 'a' column and then get the index of the max value using idxmax and use these indices to index the orig df:

In [12]:
df.loc[df.groupby('a')['b'].idxmax()]

Out[12]:
     a   b
2  100  16
5  200  30
6  300  45
8  400  25

这篇关于Python Dataframe根据列之一中的最大值选择行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-13 17:14