微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – Groupby返回完整行的最大值

如何获取groupby relsult的完整数据行?

df
   a   b   c  d   e
0  a  25  12  1  20
1  a  15   1  1   1
2  b  12   1  1   1
3  n  25   2  3   3

In [4]: df = pd.read_clipboard()

In [5]: df.groupby('a')['b'].max()
Out[5]: 
a
a    25
b    12
n    25
Name: b, dtype: int64

如何获得完整的行?

a   b   c  d   e
a  25  12  1  20
b  12   1  1   1
n  25   2  3   3

我尝试过滤但df [df.e == df.groupby(‘a’)[‘b’].max()]但尺寸不同:(

原始数据:

0          1       2        3     4        5     6      7       8    9   
EVE00101  Trial  DRY RUN  PASS  1610071  1610071  Y  20140808  NaN  29   

10        11                12           13                 14  
FF1  ./ff1.sh  Event Validation  Hive Tables  2015-11-30 9:40:34 

Groupby([1,7])[14] .max()给出了结果但是在分组系列中为1和7作为索引我想要相应的列.它是15,000行数据并提供1行样本

解决方法:

你可以使用argmax():

In [287]: df.groupby('a', as_index=False).apply(lambda x: x.loc[x.b.argmax(),])
Out[287]:
   a   b   c  d   e
0  a  25  12  1  20
1  b  12   1  1   1
2  n  25   2  3   3

这种方式即使b不是最大的也能工作.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐