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

 更新时间:2018年04月20日 11:24:30   作者:LZ_Zack  
下面小编就为大家分享一篇Python在groupby分组后提取指定位置记录方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

在进行数据分析、数据建模时,我们首先要做的就是对数据进行处理,提取我们需要的信息。下面为大家介绍一些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先做判断。

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

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

相关文章

  • python Jupyter运行时间实例过程解析

    python Jupyter运行时间实例过程解析

    这篇文章主要介绍了python Jupyter运行时间实例过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • python识别验证码图片实例详解

    python识别验证码图片实例详解

    这篇文章主要介绍了python识别验证码图片实例详解,需要的朋友可以参考下
    2020-02-02
  • python使用xlrd模块读取excel的方法实例

    python使用xlrd模块读取excel的方法实例

    Python读取Excel表格,相比xlwt来说,xlrd提供的接口比较多,下面这篇文章主要给大家介绍了关于python使用xlrd模块读取excel的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • python使用paramiko模块通过ssh2协议对交换机进行配置的方法

    python使用paramiko模块通过ssh2协议对交换机进行配置的方法

    今天小编就为大家分享一篇python使用paramiko模块通过ssh2协议对交换机进行配置的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python实现简易SSL的项目实践

    python实现简易SSL的项目实践

    本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02
  • Python实现微博动态图片爬取详解

    Python实现微博动态图片爬取详解

    这篇文章主要为大家介绍了如何利用Python中的爬虫实现微博动态图片的爬取,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试
    2022-03-03
  • python找出列表中大于某个阈值的数据段示例

    python找出列表中大于某个阈值的数据段示例

    今天小编就为大家分享一篇python找出列表中大于某个阈值的数据段示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python利用PyQt5制作一个获取网络实时NBA数据并播报的GUI程序

    Python利用PyQt5制作一个获取网络实时NBA数据并播报的GUI程序

    现在NBA联赛也进行到半决赛了,我们怎么样才能以更快的方法获取NBA的数据呢?这里我们就自己来做一个数据播报的程序,需要的朋友可以参考下
    2021-06-06
  • python解析xml文件实例分析

    python解析xml文件实例分析

    这篇文章主要介绍了python解析xml文件的方法,实例分析了Python针对XML文件节点及字段的获取技巧,非常简单实用,需要的朋友可以参考下
    2015-05-05
  • python BitMap算法处理20亿随机整数去重

    python BitMap算法处理20亿随机整数去重

    这篇文章主要为大家介绍了python BitMap算法处理20亿随机整数去重,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01

最新评论