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 相关文章推荐
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
May 22 Python
Python中绑定与未绑定的类方法用法分析
Apr 29 Python
Python中常用信号signal类型实例
Jan 25 Python
TensorFlow平台下Python实现神经网络
Mar 10 Python
python numpy 一维数组转变为多维数组的实例
Jul 02 Python
浅谈python下含中文字符串正则表达式的编码问题
Dec 07 Python
django框架模型层功能、组成与用法分析
Jul 30 Python
Python自动化完成tb喵币任务的操作方法
Oct 30 Python
基于Python获取城市近7天天气预报
Nov 26 Python
python文件及目录操作代码汇总
Jul 08 Python
python openpyxl模块的使用详解
Feb 25 Python
PyQt 如何创建自定义QWidget
Mar 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
php调用c接口无错版介绍
2014/03/11 PHP
php简单日历函数
2015/10/28 PHP
Zend Framework教程之Zend_Registry对象用法分析
2016/03/22 PHP
php批量转换文件夹下所有文件编码的函数类
2017/08/06 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
原生javascript实现图片按钮切换
2015/01/12 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
2015/04/17 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
2018/09/14 Javascript
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
微信小程序列表时间戳转换实现过程解析
2019/10/12 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
一些常用的Python爬虫技巧汇总
2016/09/28 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
浅谈利用numpy对矩阵进行归一化处理的方法
2018/07/11 Python
Python魔法方法功能与用法简介
2019/04/04 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
python中doctest库实例用法
2020/12/31 Python
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
基于Html5实现的react拖拽排序组件示例
2018/08/13 HTML / CSS
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
硕士研究生自我鉴定
2013/11/08 职场文书
公司清洁工岗位职责
2013/12/14 职场文书
2014年消防工作实施方案
2014/02/20 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书
css display table 自适应高度、宽度问题的解决
2021/05/07 HTML / CSS
MySQL 8.0 Online DDL快速加列的相关总结
2021/06/02 MySQL
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技