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的Tornado框架实现一个简单的WebQQ机器人
Apr 24 Python
简单的python协同过滤程序实例代码
Jan 31 Python
python中的闭包函数
Feb 09 Python
使用Python读取安卓手机的屏幕分辨率方法
Mar 31 Python
python利用thrift服务读取hbase数据的方法
Dec 27 Python
python3正则提取字符串里的中文实例
Jan 31 Python
python plotly画柱状图代码实例
Dec 13 Python
Python常用库大全及简要说明
Jan 17 Python
python将unicode和str互相转化的实现
May 11 Python
django 获取字段最大值,最新的记录操作
Aug 09 Python
Pycharm安装python库的方法
Nov 24 Python
pandas提升计算效率的一些方法汇总
May 30 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
《魔兽世界》惊魂幻象将获得调整
2020/03/08 其他游戏
php后退一页表单内容保存实现方法
2012/06/17 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
php页面防重复提交方法总结
2013/11/25 PHP
制作个性化的WordPress登陆界面的实例教程
2016/05/21 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
js实现正方形颜色从下往上升的效果
2014/08/04 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
js 获取元素的具体样式信息getcss(实例讲解)
2017/07/05 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
2019/08/23 Javascript
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
springboot+vue实现文件上传下载
2020/11/17 Vue.js
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
跟老齐学Python之玩转字符串(1)
2014/09/14 Python
九步学会Python装饰器
2015/05/09 Python
简单理解Python中的装饰器
2015/07/31 Python
Django配置celery(非djcelery)执行异步任务和定时任务
2018/07/16 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
2019/06/12 Python
python argparser的具体使用
2019/11/10 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
CSS3 倾斜的网页图片库实例教程
2009/11/14 HTML / CSS
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
英国乡村时尚和宠物用品专家:Pet & Country
2018/07/02 全球购物
管理科学大学生求职信
2013/11/13 职场文书
金融专业毕业生推荐信
2013/11/26 职场文书
党支部特色活动方案
2014/08/20 职场文书
班主任寄语2016
2015/12/04 职场文书