使用Pandas Dataframes根据间隙长度计算活动日期

时间:2015-04-24 18:11:46

标签: python date datetime pandas time-series

我对熊猫相对较新,并试图弄清楚计算这些信息的最佳方式是什么,所以任何帮助都非常感谢。基本上我有一个看起来像这样的数据框:

id     activity_date
1      2015-01-01      
1      2015-01-02      
1      2015-01-03      
2      2015-01-02      
2      2015-01-05     
3      2015-01-10      

我想计算以下信息“每个帐户活动了多少天?”,我知道我可以简单地计算得到这些信息,但我想应用以下限制,“如果有n活动日期之间的天数,仅计算该差距之前的天数“。

例如,如果n = 5,则以下应将活动天数返回为4,而不是6

id     activity_date
1      2015-01-01      
1      2015-01-02      
1      2015-01-04
1      2015-01-06
1      2015-01-14
1      2015-01-15

1 个答案:

答案 0 :(得分:1)

在理解了你想要的东西之后这会更简单,所以我们计算当前和前一行之间的差异是否大于5天给我们一个布尔系列,我们使用这个过滤器df然后使用索引值来执行切片:

In [57]:

inactive_index = df[df['activity_date'].diff() > pd.Timedelta(5, 'd')]
inactive_index
Out[57]:
   id activity_date
4   1    2015-01-14

In [18]:

inactive.index
Out[18]:
Int64Index([4], dtype='int64')
In [58]:

df.iloc[:inactive.index[0]]
Out[58]:
   id activity_date
0   1    2015-01-01
1   1    2015-01-02
2   1    2015-01-04
3   1    2015-01-06