Advertisement
Guest User

Untitled

a guest
Jul 21st, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.85 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 t1 t2
  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.0
  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 0.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
  72.  
  73. mean of... TOTAL total
  74. HH:MM trip1 trip2 trip3 MEAN sum
  75. 03:01 1 1 1
  76. 03:02 1 1 1
  77. 03:03 1 1 1
  78. 03:04 1 1 1
  79. 03:05 1 1 1
  80. 03:06 1 2 1.5 3
  81. 03:07 1 2 1.5 3
  82. 03:08 1 3 2 2 6
  83. 03:09 1 3 2 2 6
  84. 03:10 1 3 2 2 6
  85. 03:11 3 2 2 6
  86. 03:12 3 2 2.5 5
  87. 03:13 2 2 2
  88. 03:14 2 2 2
  89. 03:15 2 2 2
  90.  
  91.  
  92. Mean trip1 = 10 / 10 minutes = 1 passenger/minute
  93. Mean trip2 = 15 / 5 minutes = 3 passengers/minute
  94. Mean trip3 = 20 / 10 minutes = 2 passengers/minute
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement