python pandas cumsum求累计次数的用法

yipeiwu_com6年前Python基础

本文主要是针对 cumsum函数的一些用法。具体应用场景看下面的数据集。


第一列是userID,第二列是安装的时间,第三列是安装的次数。

我们现在想做一件事情。就是统计用户在某一天前累计的安装次数。

譬如,对userID为20的用户,问在16天前,其安装次数为多少? 答案应该是4次。用python的实现也很简单。

又譬如,userID为44在19天前安装的次数,那就应该是1+3+1+1=6次。

具体代码:(假设数据集为data)

由于是针对每个userID,所以是需要将userID划分一下(这个方法在组内排序的时候有提到,可以参考前面的文章)。

所以才有下面这一句

groupby(['userID'])

然后,分完组后需要统计的Times,所以就是下面这一句

data['Times'].groupby(['userID'])

最后,我们需要的是累加量,所以,用cumsum()这个函数。

data['sum_Times']=data['Times'].groupby(['userID']).cumsum()

用得到的结果放在一列。

最后得到结果如下:


可以从sum_Times这列看到,每一个值都是相应userID在前一行的累加值。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python计算最大优先级队列实例

复制代码 代码如下:# -*- coding: utf-8 -*- class Heap(object):     @classmethod &n...

pandas.DataFrame 根据条件新建列并赋值的方法

实例如下所示: import numpy as np import pandas as pd data = {'city': ['Beijing', 'Shanghai', 'Gu...

对Python中小整数对象池和大整数对象池的使用详解

1. 小整数对象池 整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。 Python 对小整数的定义是 [-5, 256] 这...

python scipy求解非线性方程的方法(fsolve/root)

python scipy求解非线性方程的方法(fsolve/root)

使用scipy.optimize模块的root和fsolve函数进行数值求解线性及非线性方程,下面直接贴上代码,代码很简单 from scipy.integrate import o...

对python遍历文件夹中的所有jpg文件的实例详解

python发现文件夹下所有的jpg文件,并且安装文件排放的顺序输出 glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差...