Python在groupby分组后提取指定位置记录方法
作者:LZ_Zack 时间:2023-06-09 08:48:16
在进行数据分析、数据建模时,我们首先要做的就是对数据进行处理,提取我们需要的信息。下面为大家介绍一些groupby的用法,以便能够更加方便地进行数据处理。
我们往往在使用groupby进行信息提取时,往往是求分组后样本的一些统计量(max、min,var等)。如果现在我们希望取一下分组后样本的第二条记录,倒数第三条记录,这个该如何操作呢?我们可以通过first、last来提取分组后第一条和最后一条样本。但如果我们要取指定位置的样本,就没有现成的函数。需要我们自己去写了。下面我就为大家介绍如何实现上面的功能。
1)数据介绍
action表共有3列:userid、actionType和actionTime,分别代表用户id,用户行为类型和行为发生时间。具体格式如下图所示:
2)分组操作
a = action.groupby('userid')
b = action.groupby('userid')['actionTime']
type(a)
type(b)
分组后我们可以看到a和b的数据类型是DataFrameGroupBy和SeriesGroupBy
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先做判断。
这样我们就可以提取分组后数据任意位置的样本了。
来源:https://blog.csdn.net/lz_peter/article/details/79044247
标签:groupby,分组,提取,位置
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
python标准库学习之sys模块详解
2021-08-02 02:25:19
![](https://img.aspxhome.com/file/2023/4/98984_0s.jpg)
SQLite数据库管理相关命令的使用介绍
2024-01-27 12:41:00
LangChain简化ChatGPT工程复杂度使用详解
2022-10-21 22:25:34
pytorch创建tensor函数详情
2021-10-30 15:09:56
十个Python程序员易犯的错误
2023-11-27 03:43:13
nlp自然语言处理学习CBOW模型类实现示例解析
2023-08-08 00:26:03
![](https://img.aspxhome.com/file/2023/8/76178_0s.jpg)
bootstrapValidator bootstrap-select验证不可用的解决办法
2024-04-10 13:53:06
使用php来实现网络服务
2024-06-05 09:46:46
mysql生成指定位数的随机数及批量生成随机数的方法
2024-01-16 18:22:22
![](https://img.aspxhome.com/file/2023/8/119758_0s.png)
Python编程把二叉树打印成多行代码
2023-06-24 15:12:57
关于Mysql5.7及8.0版本索引失效情况汇总
2024-01-21 08:35:35
go语言制作的zip压缩程序
2024-02-12 21:03:00
在Mac中搭建go语言开发环境的操作步骤
2024-05-09 10:11:49
php 备份数据库代码(生成word,excel,json,xml,sql)
2024-06-05 09:52:42
Django 2.0版本的新特性抢先看!
2021-01-03 11:10:50
详解基于 axios 的 Vue 项目 http 请求优化
2024-05-09 15:12:47
goland使用go mod模式的步骤详解
2024-05-25 15:16:35
![](https://img.aspxhome.com/file/2023/2/123942_0s.png)
MySQL基础之MySQL 5.7 新增配置
2024-01-15 08:19:02
Python使用OpenCV对图像进行缩放功能
2022-05-06 03:47:51
![](https://img.aspxhome.com/file/2023/7/71357_0s.jpg)
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2022-11-16 09:48:18
![](https://img.aspxhome.com/file/2023/0/127920_0s.png)