Python在groupby分组后提取指定位置记录方法


Posted in Python onApril 20, 2018

在进行数据分析、数据建模时,我们首先要做的就是对数据进行处理,提取我们需要的信息。下面为大家介绍一些groupby的用法,以便能够更加方便地进行数据处理。

我们往往在使用groupby进行信息提取时,往往是求分组后样本的一些统计量(max、min,var等)。如果现在我们希望取一下分组后样本的第二条记录,倒数第三条记录,这个该如何操作呢?我们可以通过first、last来提取分组后第一条和最后一条样本。但如果我们要取指定位置的样本,就没有现成的函数。需要我们自己去写了。下面我就为大家介绍如何实现上面的功能。

1)数据介绍

action表共有3列:userid、actionType和actionTime,分别代表用户id,用户行为类型和行为发生时间。具体格式如下图所示:

Python在groupby分组后提取指定位置记录方法

2)分组操作

a = action.groupby('userid') 
b = action.groupby('userid')['actionTime'] 
type(a) 
type(b)

分组后我们可以看到a和b的数据类型是DataFrameGroupBy和SeriesGroupBy

Python在groupby分组后提取指定位置记录方法

3)取数操作

①不同用户第二次/倒数第二次操作时间

action.groupby('userid')['actionTime'].apply(lambda i:i.iloc[1] if len(i)>1 else np.nan) 
action.groupby('userid')['actionTime'].apply(lambda i:i.iloc[-2] if len(i)>1 else np.nan)

②不同用户某种行为第二次/倒数第二次操作时间

action[action['actionType']==2].groupby('userid')['actionTime'].apply(lambda i:i.iloc[1] if len(i)>1 else np.nan) 
action[action['actionType']==2].groupby('userid')['actionTime'].apply(lambda i:i.iloc[-2] if len(i)>1 else np.nan)

PS:因为有些用户可能只有一条记录,直接取可能会出错,所以我用if先做判断。

这样我们就可以提取分组后数据任意位置的样本了。

以上这篇Python在groupby分组后提取指定位置记录方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python用字典统计单词或汉字词个数示例
Apr 22 Python
使用Python导出Excel图表以及导出为图片的方法
Nov 07 Python
一步步解析Python斗牛游戏的概率
Feb 12 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
Jun 07 Python
Python实现微信小程序支付功能
Jul 25 Python
python使用 __init__初始化操作简单示例
Sep 26 Python
pygame实现贪吃蛇游戏(下)
Oct 29 Python
六种酷炫Python运行进度条效果的实现代码
Jul 17 Python
Python爬虫教程知识点总结
Oct 19 Python
python 解决Windows平台上路径有空格的问题
Nov 10 Python
python 根据列表批量下载网易云音乐的免费音乐
Dec 03 Python
这样写python注释让代码更加的优雅
Jun 02 Python
PyQt实现界面翻转切换效果
Apr 20 #Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
Apr 20 #Python
python3 pandas 读取MySQL数据和插入的实例
Apr 20 #Python
PyQt5每天必学之事件与信号
Apr 20 #Python
pandas groupby 分组取每组的前几行记录方法
Apr 20 #Python
基于pandas数据样本行列选取的方法
Apr 20 #Python
pandas实现选取特定索引的行
Apr 20 #Python
You might like
微信公众平台开发实现2048游戏的方法
2015/04/15 PHP
ThinkPHP安装和设置
2015/07/27 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
2016/07/07 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
JS注释所产生的bug 即使注释也会执行
2013/11/19 Javascript
iframe窗口高度自适应的实现方法
2014/01/08 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
原生JavaScript制作微博发布面板效果
2016/03/11 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
EasyUI Tree树组件无限循环的解决方法
2017/09/27 Javascript
深入理解JavaScript的async/await
2018/08/05 Javascript
用Python操作字符串之rindex()方法的使用
2015/05/19 Python
Python编程中time模块的一些关键用法解析
2016/01/19 Python
Python中强大的命令行库click入门教程
2016/12/26 Python
Python实现类的创建与使用方法示例
2017/07/25 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
2017/12/20 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
2018/03/08 Python
python实现微信自动回复功能
2018/04/11 Python
Python实现分段线性插值
2018/12/17 Python
Django 开发环境配置过程详解
2019/07/18 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
Python实现平行坐标图的绘制(plotly)方式
2019/11/22 Python
flask的orm框架SQLAlchemy查询实现解析
2019/12/12 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
文明家庭先进事迹材
2014/01/27 职场文书
最新奶茶店创业计划书范文
2014/02/08 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
毕业生求职信
2014/06/10 职场文书
领导班子四风问题对照检查材料
2014/09/27 职场文书
个人工作表现自我评价
2015/03/06 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python
Win11使用CAD卡顿或者致命错误怎么办?Win11无法正常使用CAD的解决方法
2022/07/23 数码科技