pandas获取groupby分组里最大值所在的行方法


Posted in Python onApril 20, 2018

pandas获取groupby分组里最大值所在的行方法

如下面这个DataFrame,按照Mt分组,取出Count最大的那行

import pandas as pd
df = pd.DataFrame({'Sp':['a','b','c','d','e','f'], 'Mt':['s1', 's1', 's2','s2','s2','s3'], 'Value':[1,2,3,4,5,6], 'Count':[3,2,5,10,10,6]})

df

Count Mt Sp Value
0 3 s1 a 1
1 2 s1 b 2
2 5 s2 c 3
3 10 s2 d 4
4 10 s2 e 5
5 6 s3 f 6

方法1:在分组中过滤出Count最大的行

df.groupby('Mt').apply(lambda t: t[t.Count==t.Count.max()])

Count Mt Sp Value
Mt
s1 0 3 s1 a 1
s2 3 10 s2 d 4
4 10 s2 e 5
s3 5 6 s3 f 6

方法2:用transform获取原dataframe的index,然后过滤出需要的行

print df.groupby(['Mt'])['Count'].agg(max)

idx=df.groupby(['Mt'])['Count'].transform(max)
print idx
idx1 = idx == df['Count']
print idx1

df[idx1]
Mt
s1 3
s2 10
s3 6
Name: Count, dtype: int64
0 3
1 3
2 10
3 10
4 10
5 6
dtype: int64
0 True
1 False
2 False
3 True
4 True
5 True
dtype: bool

Count Mt Sp Value
0 3 s1 a 1
3 10 s2 d 4
4 10 s2 e 5
5 6 s3 f 6

上面的方法都有个问题是3、4行的值都是最大值,这样返回了多行,如果只要返回一行呢?

方法3:idmax(旧版本pandas是argmax)

idx = df.groupby('Mt')['Count'].idxmax()
print idx
df.iloc[idx]
Mt
s1 0
s2 3
s3 5
Name: Count, dtype: int64

Count Mt Sp Value
0 3 s1 a 1
3 10 s2 d 4
5 6 s3 f 6
df.iloc[df.groupby(['Mt']).apply(lambda x: x['Count'].idxmax())]

Count Mt Sp Value
0 3 s1 a 1
3 10 s2 d 4
5 6 s3 f 6
def using_apply(df):
 return (df.groupby('Mt').apply(lambda subf: subf['Value'][subf['Count'].idxmax()]))

def using_idxmax_loc(df):
 idx = df.groupby('Mt')['Count'].idxmax()
 return df.loc[idx, ['Mt', 'Value']]

print using_apply(df)

using_idxmax_loc(df)
Mt
s1 1
s2 4
s3 6
dtype: int64

Mt Value
0 s1 1
3 s2 4
5 s3 6

方法4:先排好序,然后每组取第一个

df.sort('Count', ascending=False).groupby('Mt', as_index=False).first()

Mt Count Sp Value
0 s1 3 a 1
1 s2 10 d 4
2 s3 6 f 6

那问题又来了,如果不是要取出最大值所在的行,比如要中间值所在的那行呢?

思路还是类似,可能具体写法上要做一些修改,比如方法1和2要修改max算法,方法3要自己实现一个返回index的方法。 不管怎样,groupby之后,每个分组都是一个dataframe。

以上这篇pandas获取groupby分组里最大值所在的行方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python之wxPython菜单使用详解
Sep 28 Python
Python实现把utf-8格式的文件转换成gbk格式的文件
Jan 22 Python
Python中的匿名函数使用简介
Apr 27 Python
Python使用ftplib实现简易FTP客户端的方法
Jun 03 Python
Python实现在线音乐播放器
Mar 03 Python
Python分析学校四六级过关情况
Nov 22 Python
Python基于PyGraphics包实现图片截取功能的方法
Dec 21 Python
详解Python3的TFTP文件传输
Jun 26 Python
TensorFlow打印tensor值的实现方法
Jul 27 Python
对django中render()与render_to_response()的区别详解
Oct 16 Python
Django之PopUp的具体实现方法
Aug 31 Python
用于ETL的Python数据转换工具详解
Jul 21 Python
pandas多级分组实现排序的方法
Apr 20 #Python
Python PyQt4实现QQ抽屉效果
Apr 20 #Python
Python在groupby分组后提取指定位置记录方法
Apr 20 #Python
PyQt实现界面翻转切换效果
Apr 20 #Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
Apr 20 #Python
python3 pandas 读取MySQL数据和插入的实例
Apr 20 #Python
PyQt5每天必学之事件与信号
Apr 20 #Python
You might like
PHP extract 将数组拆分成多个变量的函数
2010/06/30 PHP
Thinkphp关闭缓存的方法
2015/06/26 PHP
Yii开启片段缓存的方法
2016/03/28 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
laravel自定义分页效果
2017/07/23 PHP
jQuery 性能优化指南 (1)
2009/05/21 Javascript
Prototype Template对象 学习
2009/07/19 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
js实现的常用的左侧导航效果
2013/10/17 Javascript
jquery任意位置浮动固定层插件用法实例
2015/05/29 Javascript
JavaScript实现连连看连线算法
2019/01/05 Javascript
vue 进阶之实现父子组件间的传值
2019/04/26 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
[43:51]2014 DOTA2国际邀请赛中国区预选赛 Dream Times VS TongFu
2014/05/22 DOTA
跟老齐学Python之list和str比较
2014/09/20 Python
Python创建文件和追加文件内容实例
2014/10/21 Python
详解python中的json的基本使用方法
2016/12/21 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
python+django+sql学生信息管理后台开发
2018/01/11 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
Keras实现DenseNet结构操作
2020/07/06 Python
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
前台文员我鉴定
2014/01/12 职场文书
大学生开西餐厅创业计划书
2014/02/01 职场文书
《石榴》教学反思
2014/03/02 职场文书
初中英语课后反思
2014/04/25 职场文书
拓展策划方案
2014/06/03 职场文书
党员一帮一活动总结
2014/07/08 职场文书
2014年党的群众路线活动个人整改措施
2014/10/28 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
国庆庆典邀请函
2015/02/02 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书