熊猫中特定列值的日期之间的累计差额

时间:2019-12-09 08:45:50

标签: pandas

我想根据“ 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

1 个答案:

答案 0 :(得分:1)

DataFrameGroupBy.diffSeries.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