熊猫 - 减去最大日期分钟日期为每个组
我想增加一列,从每个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