我想根据“ Mobile_Number”列中的数字减去“日期”列中的日期
Mobile_Number Date
0503477334 2018-10-28
0506002884 2018-10-28
0501022162 2018-10-30
0503477334 2018-11-05
0506002884 2018-11-08
0503477334 2018-11-12
结果应该是
Mobile_Number Date Difference
0503477334 2018-10-28 0
0506002884 2018-10-28 0
0501022162 2018-10-30 0
0503477334 2018-11-05 8
0506002884 2018-11-08 11
0503477334 2018-11-12 7
答案 0 :(得分:1)
将DataFrameGroupBy.diff
与Series.dt.days
一起使用,替换缺少的值并转换为integers
:
df['Difference'] = df.groupby('Mobile_Number')['Date'].diff().dt.days.fillna(0).astype(int)
print (df)
Mobile_Number Date Difference
0 503477334 2018-10-28 0
1 506002884 2018-10-28 0
2 501022162 2018-10-30 0
3 503477334 2018-11-05 8
4 506002884 2018-11-08 11
5 503477334 2018-11-12 7