Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. import pandas as pd
  2.  
  3. d = ({
  4. 'Time' : [1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6],
  5. })
  6.  
  7. df = pd.DataFrame(data = d)
  8.  
  9. def time_period(row) :
  10. if row['Time'] == 1 :
  11. return '8:00:00'
  12. if row['Time'] == 2 :
  13. return '8:15:00'
  14. if row['Time'] == 3 :
  15. return '8:30:00'
  16. if row['Time'] == 4 :
  17. return '8:45:00'
  18. if row['Time'] == 5 :
  19. return '9:00:00'
  20. if row['Time'] == 6 :
  21. return '9:15:00'
  22. .....
  23. if row['Time'] == 80 :
  24. return '4:00:00'
  25.  
  26. df['24Hr Time'] = df.apply(lambda row: time_period(row), axis=1)
  27.  
  28. print(df)
  29.  
  30. Time 24Hr Time
  31. 0 1 8:00:00
  32. 1 1 8:00:00
  33. 2 1 8:00:00
  34. 3 2 8:15:00
  35. 4 2 8:15:00
  36. 5 2 8:15:00
  37. 6 3 8:30:00
  38. 7 3 8:30:00
  39. 8 3 8:30:00
  40. 9 4 8:45:00
  41. 10 4 8:45:00
  42. 11 4 8:45:00
  43. 12 5 9:00:00
  44. 13 5 9:00:00
  45. 14 5 9:00:00
  46. 15 6 9:15:00
  47. 16 6 9:15:00
  48. 17 6 9:15:00
  49.  
  50. df['24Hr Time'] = (
  51. pd.to_timedelta((df['Time'] - 1) * 15, unit='m') + pd.Timedelta(hours=8))
  52. df.head()
  53.  
  54. Time 24Hr Time
  55. 0 1 08:00:00
  56. 1 1 08:00:00
  57. 2 1 08:00:00
  58. 3 2 08:15:00
  59. 4 2 08:15:00
  60.  
  61. df.dtypes
  62.  
  63. Time int64
  64. 24Hr Time timedelta64[ns]
  65. dtype: object
  66.  
  67. df['24Hr Time'] = (
  68. pd.to_datetime((df['Time']-1) * 15, unit='m', origin='8:00:00')
  69. .dt.strftime('%H:%M:%S'))
  70. df.head()
  71.  
  72. Time 24Hr Time
  73. 0 1 08:00:00
  74. 1 1 08:00:00
  75. 2 1 08:00:00
  76. 3 2 08:15:00
  77. 4 2 08:15:00
  78.  
  79. df.dtypes
  80.  
  81. Time int64
  82. 24Hr Time object
  83. dtype: object
  84.  
  85. pd.to_datetime((df.Time-1)*15*60+8*60*60,unit='s').dt.time
  86. 0 08:00:00
  87. 1 08:00:00
  88. 2 08:00:00
  89. 3 08:15:00
  90. 4 08:15:00
  91. 5 08:15:00
  92. 6 08:30:00
  93. 7 08:30:00
  94. 8 08:30:00
  95. 9 08:45:00
  96. 10 08:45:00
  97. 11 08:45:00
  98. 12 09:00:00
  99. 13 09:00:00
  100. 14 09:00:00
  101. 15 09:15:00
  102. 16 09:15:00
  103. 17 09:15:00
  104. Name: Time, dtype: object
  105.  
  106. my_dict = {'old_val1': 'new_val1',...}
  107. df['24Hr Time'] = df['Time'].map(my_dict)
  108.  
  109. df['24Hr Time'] = pd.to_timedelta(df['Time']*15, unit='T') + pd.to_timedelta('7:45:00')
  110.  
  111. Time 24Hr Time
  112. 0 1 08:00:00
  113. 1 1 08:00:00
  114. 2 1 08:00:00
  115. 3 2 08:15:00
  116. 4 2 08:15:00
  117. 5 2 08:15:00
  118. 6 3 08:30:00
  119. 7 3 08:30:00
  120. 8 3 08:30:00
  121. 9 4 08:45:00
  122. 10 4 08:45:00
  123. 11 4 08:45:00
  124. 12 5 09:00:00
  125. 13 5 09:00:00
  126. 14 5 09:00:00
  127. 15 6 09:15:00
  128. 16 6 09:15:00
  129. 17 6 09:15:00
  130.  
  131. n = df.Time.nunique()
  132. c = df.groupby('Time').size().values
  133. df['24_hr'] = pd.timedelta_range(start='8 hours', periods=n, freq='15T').repeat(c)
  134.  
  135. Out[380]:
  136. Time 24_hr
  137. 0 1 08:00:00
  138. 1 1 08:00:00
  139. 2 1 08:00:00
  140. 3 2 08:15:00
  141. 4 2 08:15:00
  142. 5 2 08:15:00
  143. 6 3 08:30:00
  144. 7 3 08:30:00
  145. 8 3 08:30:00
  146. 9 4 08:45:00
  147. 10 4 08:45:00
  148. 11 4 08:45:00
  149. 12 5 09:00:00
  150. 13 5 09:00:00
  151. 14 5 09:00:00
  152. 15 6 09:15:00
  153. 16 6 09:15:00
  154. 17 6 09:15:00
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement