Guest User

Untitled

a guest
Dec 17th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. df_raw_dates = pd.DataFrame({"id": [102, 102, 102, 103, 103, 103, 104], "val": [9,2,4,7,6,3,2], "dates": [pd.Timestamp(2002, 1, 1), pd.Timestamp(2002, 3, 3), pd.Timestamp(2003, 4, 4), pd.Timestamp(2003, 8, 9), pd.Timestamp(2005, 2, 3), pd.Timestamp(2005, 2, 8), pd.Timestamp(2005, 2, 3)]})
  2.  
  3. id val dates
  4. 0 102 9 2002-01-01
  5. 1 102 2 2002-03-03
  6. 2 102 4 2003-04-04
  7. 3 103 7 2003-08-09
  8. 4 103 6 2005-02-03
  9. 5 103 3 2005-02-08
  10. 6 104 2 2005-02-03
  11.  
  12. df_processed_dates = pd.DataFrame({"id": [102, 102, 102, 103, 103, 103, 104], "val": [9,2,4,7,6,3,2], "diff_dates": [0, 61, 397, 0, 544, 5, 0]})
  13.  
  14. id val diff_dates
  15. 0 102 9 0
  16. 1 102 2 61
  17. 2 102 4 397
  18. 3 103 7 0
  19. 4 103 6 544
  20. 5 103 3 5
  21. 6 104 2 0
  22.  
  23. df_raw_dates.groupby('id').dates.diff().dt.days.fillna(0, downcast='infer')
  24.  
  25. 0 0
  26. 1 61
  27. 2 397
  28. 3 0
  29. 4 544
  30. 5 5
  31. 6 0
  32. Name: dates, dtype: int64
  33.  
  34. df_raw_dates['date_diff'] = (
  35. df_raw_dates
  36. .pop('dates')
  37. .groupby(df_raw_dates['id'])
  38. .diff()
  39. .dt.days
  40. .fillna(0, downcast='infer'))
  41.  
  42.  
  43. df_raw_dates
  44.  
  45. id val date_diff
  46. 0 102 9 0
  47. 1 102 2 61
  48. 2 102 4 397
  49. 3 103 7 0
  50. 4 103 6 544
  51. 5 103 3 5
  52. 6 104 2 0
Add Comment
Please, Sign In to add comment