我有一个带有u_id,日期,订单的df,并且我需要添加一列,该列为每个用户提供每个订单之间的日期差。例如:
u_id | date | order
001 | 2019-01-01 | 1
001 | 2019-01-10 | 2
001 | 2019-01-15 | 3
002 | 2019-05-03 | 1
002 | 2019-05-06 | 2
...
我的目标是:
u_id | date | order | date_difference
001 | 2019-01-01 | 1 | NaT
001 | 2019-01-10 | 2 | 9 days
001 | 2019-01-15 | 3 | 5 days
002 | 2019-05-03 | 1 | NaT
002 | 2019-05-06 | 2 | 3 days
...
date_difference
col不一定需要说几天。
我在python 3.6中使用了pandas。
您可以groupby
:
df['date_difference'] = df.groupby('u_id')['date'].diff()
或没有groupby
给出正确的顺序:
df['date_difference'] = df.date.diff().where(df.u_id==df.u_id.shift())
输出:
u_id date order date_difference
0 1 2019-01-01 1 NaT
1 1 2019-01-10 2 9 days
2 1 2019-01-15 3 5 days
3 2 2019-05-03 1 NaT
4 2 2019-05-06 2 3 days
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句