Advertisement
Guest User

Untitled

a guest
Jul 20th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. start = [pd.to_datetime('03:01'),pd.to_datetime('03:08'),pd.to_datetime('03:06')]
  2. finish = [pd.to_datetime('03:11'),pd.to_datetime('03:13'),pd.to_datetime('03:16')]
  3. df1 = pd.DataFrame()
  4. df1['passengers'] = [10, 15, 20]
  5. df1['t1'] = start
  6. df1['t2'] = finish
  7. df1
  8.  
  9. passengers d1 d2
  10. 0 10 2019-07-20 03:01:00 2019-07-20 03:11:00
  11. 1 15 2019-07-20 03:08:00 2019-07-20 03:13:00
  12. 2 20 2019-07-20 03:06:00 2019-07-20 03:16:00
  13.  
  14. cuthour = '03:00' # <--- user input
  15. cuthour = pd.to_datetime(cuthour)
  16. idx = pd.date_range(cuthour+pd.to_timedelta('1min'),'23:59', freq='T').append(pd.date_range('00:00',cuthour,freq='T'))
  17. df2 = pd.DataFrame(index=idx)
  18. df2['passengers'] = 0 #initialize with zeros
  19.  
  20. <class 'pandas.core.frame.DataFrame'>
  21. DatetimeIndex: 1440 entries, 2019-07-20 03:01:00 to 2019-07-20 03:00:00
  22. Data columns (total 1 columns):
  23. pessoas 1440 non-null int64
  24. dtypes: int64(1)
  25.  
  26. 2019-07-20 03:01:00 1.0
  27. 2019-07-20 03:02:00 1.0
  28. 2019-07-20 03:03:00 1.0
  29. 2019-07-20 03:04:00 1.0
  30. 2019-07-20 03:05:00 1.0
  31. 2019-07-20 03:06:00 1.5
  32. 2019-07-20 03:07:00 1.5
  33. 2019-07-20 03:08:00 2.0
  34. 2019-07-20 03:09:00 2.0
  35. 2019-07-20 03:10:00 2.0
  36. 2019-07-20 03:11:00 2.0
  37. 2019-07-20 03:12:00 2.5
  38. 2019-07-20 03:13:00 2.5
  39. 2019-07-20 03:14:00 2.0
  40. 2019-07-20 03:15:00 2.0
  41. 2019-07-20 03:16:00 2.0
  42. 2019-07-20 03:17:00 0.0
  43. ...
  44.  
  45. 2019-07-20 03:01:00 1.0
  46. 2019-07-20 03:02:00 1.0
  47. 2019-07-20 03:03:00 1.0
  48. 2019-07-20 03:04:00 1.0
  49. 2019-07-20 03:05:00 1.0
  50. 2019-07-20 03:06:00 3.0
  51. 2019-07-20 03:07:00 3.0
  52. 2019-07-20 03:08:00 6.0
  53. 2019-07-20 03:09:00 6.0
  54. 2019-07-20 03:10:00 6.0
  55. 2019-07-20 03:11:00 6.0
  56. 2019-07-20 03:12:00 5.0
  57. 2019-07-20 03:13:00 5.0
  58. 2019-07-20 03:14:00 2.0
  59. 2019-07-20 03:15:00 2.0
  60. 2019-07-20 03:16:00 2.0
  61. 2019-07-20 03:17:00 0.0
  62. ...
  63.  
  64. def calcmean(x):
  65. ir = pd.date_range(x.t1,x.t2,freq='T')
  66. lir = len(ir)-1
  67. mp = x.passengers/lir
  68. df2.loc[df2.index.isin(ir)] = df2.loc[df2.index.isin(ir)] + mp
  69.  
  70. df1.apply(calcmean, axis=1)
  71. df2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement