首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫群日期间差异的标准差

熊猫群日期间差异的标准差
EN

Stack Overflow用户
提问于 2018-10-18 16:14:58
回答 1查看 1K关注 0票数 2

我有一份交易数据。我的专栏之一是日期(datetime64ns)。我是一个由用户组成的组(电子邮件为id)。我感兴趣的是每个用户的订单之间的时间变异性。因此,我在组中寻找的是每个用户的日期(以天为单位)之间的差异的标准差。如果用户有两个或最少的事务,答案应该是0。这是一些dataframe (我手动更改了一些内容):

代码语言:javascript
复制
df

                  email                       date
0                 cuadros.paolo@gmail.com     2018-05-01 12:29:59
1                   rlez_1202@hotmail.com     2018-07-11 13:43:22
2                 cuadros.paolo@gmail.com     2018-09-21 12:29:23
3             paola.alvarado@rumah.com.pe     2018-09-01 09:21:43
4                    luchosuito@gmail.com     2018-04-30 12:29:30
5             paola.alvarado@rumah.com.pe     2018-03-22 12:29:23
6           davida.alvarado.703@gmail.com     2018-07-21 12:29:17
7                 cuadros.paolo@gmail.com     2018-08-11 12:29:41
8                   rlez_1202@hotmail.com     2018-05-23 12:29:14
9                    luchosuito@gmail.com     2018-06-01 12:29:17
10               jessica26011@hotmail.com     2018-07-18 12:29:20
11                cuadros.paolo@gmail.com     2018-08-21 12:29:40
12                  rlez_1202@hotmail.com     2018-10-01 12:29:31
13            paola.alvarado@rumah.com.pe     2018-06-01 12:29:20
14              miluska-paico@hotmail.com     2018-05-21 12:29:18
15             cinthia_leon87@hotmail.com     2018-07-20 12:29:59

我试过很多种方法,但还是没办法。请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-18 16:26:45

对于顺序上的差异,这似乎是最有意义的给出你的解释:

代码语言:javascript
复制
df.sort_values('date').groupby('email').apply(lambda x: x.date.diff().std()).fillna(0)

输出:

代码语言:javascript
复制
email
cinthia_leon87@hotmail.com              0 days 00:00:00
cuadros.paolo@gmail.com         48 days 05:04:12.988006
davida.alvarado.703@gmail.com           0 days 00:00:00
jessica26011@hotmail.com                0 days 00:00:00
luchosuito@gmail.com                    0 days 00:00:00
miluska-paico@hotmail.com               0 days 00:00:00
paola.alvarado@rumah.com.pe     14 days 18:10:16.764069
rlez_1202@hotmail.com           23 days 06:17:04.453408
dtype: timedelta64[ns]

对于具有1值非空值的组,.std()将为空,因为。diff将非空观测的数量减少1,这将自动返回任何具有2或更少测量值的组的NaN,而我们用0填充该值。

另外,请注意,pandas的默认设置是使用N-1自由度。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52878364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档