熊猫 - 减去最大日期分钟日期为每个组

我想增加一列,从每个CUSTOMER_ID最大日期分钟日期的减法的这个表熊猫 - 减去最大日期分钟日期为每个组

输入结果:

action_date customer_id 

2017-08-15 1

2017-08-21 1

2017-08-21 1

2017-09-02 1

2017-08-28 2

2017-09-29 2

2017-10-15 3

2017-10-30 3

2017-12-05 3

并获得该表

输出:

action_date customer_id diff 

2017-08-15 1 18

2017-08-21 1 18

2017-08-21 1 18

2017-09-02 1 18

2017-08-28 2 32

2017-09-29 2 32

2017-10-15 3 51

2017-10-30 3 51

2017-12-05 3 51

我尝试这样的代码,但是却让很多NaN的

group = df.groupby(by='customer_id') 

df['diff'] = (group['action_date'].max() - group['action_date'].min()).dt.days

回答:

,你可以用transform方法:

In [23]: df['diff'] = df.groupby('customer_id') \ 

['action_date'] \

.transform(lambda x: (x.max()-x.min()).days)

In [24]: df

Out[24]:

action_date customer_id diff

0 2017-08-15 1 18

1 2017-08-21 1 18

2 2017-08-21 1 18

3 2017-09-02 1 18

4 2017-08-28 2 32

5 2017-09-29 2 32

6 2017-10-15 3 51

7 2017-10-30 3 51

8 2017-12-05 3 51

以上是 熊猫 - 减去最大日期分钟日期为每个组 的全部内容, 来源链接: utcz.com/qa/264930.html

回到顶部