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回溯法实现数组全排列输出实例分析
Mar 17 Python
两个命令把 Vim 打造成 Python IDE的方法
Mar 20 Python
Django admin美化插件suit使用示例
Dec 12 Python
学习Python3 Dlib19.7进行人脸面部识别
Jan 24 Python
Python3中的列表生成式、生成器与迭代器实例详解
Jun 11 Python
Python 爬虫之Beautiful Soup模块使用指南
Jul 05 Python
python pandas生成时间列表
Jun 29 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
Jan 02 Python
python使用for...else跳出双层嵌套循环的方法实例
May 17 Python
calendar在python3时间中常用函数举例详解
Nov 18 Python
python sleep和wait对比总结
Feb 03 Python
Python  序列化反序列化和异常处理的问题小结
Dec 24 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
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
php基于base64解码图片与加密图片还原实例
2014/11/03 PHP
php结合md5实现的加密解密方法
2016/01/25 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
ExtJs中简单的登录界面制作方法
2010/08/19 Javascript
zShowBox 图片放大展示jquery版 兼容性
2011/09/24 Javascript
Javascript保存网页为图片借助于html2canvas库实现
2014/09/05 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
2016/05/18 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
Vue.use源码分析
2017/04/22 Javascript
js获取一组日期中最近连续的天数
2017/05/25 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
2020/06/16 Javascript
Python代码解决RenderView窗口not found问题
2016/08/28 Python
使用Python对Excel进行读写操作
2017/03/30 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
简单了解python的内存管理机制
2019/07/08 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
python openCV实现摄像头获取人脸图片
2020/08/20 Python
CSS3解决移动页面上点击链接触发色块的问题
2016/06/03 HTML / CSS
css3圆角边框和边框阴影示例
2014/05/05 HTML / CSS
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
Waterford加拿大官方网站:世界著名的水晶杯品牌
2016/11/01 全球购物
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
运动会领导邀请函
2014/01/10 职场文书
化学教师教学反思
2014/01/17 职场文书
竞选部门副经理的自荐书范文
2014/02/11 职场文书
银行优秀员工事迹材料
2014/05/29 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
win10识别不了U盘怎么办 win10系统读取U盘失败的解决办法
2022/08/05 数码科技
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python