Advertisement
Guest User

Untitled

a guest
Apr 19th, 2014
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.16 KB | None | 0 0
  1. pandas.read_csv
  2.  
  3. df=np.array(df)
  4.  
  5. df[:,0]=[(datetime.strptime(str(d),'%H:%M:%S.%f')).total_seconds() for d in df[:,0]]
  6.  
  7. datetime.strptime
  8.  
  9. def to_seconds(s):
  10. hr, min, sec = [float(x) for x in s.split(':')]
  11. return hr*3600 + min*60 + sec
  12.  
  13. In [21]: s = pd.to_timedelta(np.arange(100000),unit='s')
  14.  
  15. In [22]: s
  16. Out[22]:
  17. 0 00:00:00
  18. 1 00:00:01
  19. 2 00:00:02
  20. 3 00:00:03
  21. 4 00:00:04
  22. 5 00:00:05
  23. 6 00:00:06
  24. 7 00:00:07
  25. 8 00:00:08
  26. 9 00:00:09
  27. 10 00:00:10
  28. 11 00:00:11
  29. 12 00:00:12
  30. 13 00:00:13
  31. 14 00:00:14
  32. ...
  33. 99985 1 days, 03:46:25
  34. 99986 1 days, 03:46:26
  35. 99987 1 days, 03:46:27
  36. 99988 1 days, 03:46:28
  37. 99989 1 days, 03:46:29
  38. 99990 1 days, 03:46:30
  39. 99991 1 days, 03:46:31
  40. 99992 1 days, 03:46:32
  41. 99993 1 days, 03:46:33
  42. 99994 1 days, 03:46:34
  43. 99995 1 days, 03:46:35
  44. 99996 1 days, 03:46:36
  45. 99997 1 days, 03:46:37
  46. 99998 1 days, 03:46:38
  47. 99999 1 days, 03:46:39
  48. Length: 100000, dtype: timedelta64[ns]
  49.  
  50. In [23]: t = s.apply(pd.tslib.repr_timedelta64)
  51.  
  52. In [24]: t.iloc[-1]
  53. Out[24]: '1 days, 03:46:39'
  54.  
  55. In [25]: pd.to_timedelta(t.iloc[-1])/np.timedelta64(1,'s')
  56. Out[25]: 99999.0
  57.  
  58. In [27]: %timeit pd.to_timedelta(t)/np.timedelta64(1,'s')
  59. 1 loops, best of 3: 1.84 s per loop
  60.  
  61. In [7]: s = Series(date_range('20130101',periods=1000,freq='ms'))
  62.  
  63. In [8]: s
  64. Out[8]:
  65. 0 2013-01-01 00:00:00
  66. 1 2013-01-01 00:00:00.001000
  67. 2 2013-01-01 00:00:00.002000
  68. 3 2013-01-01 00:00:00.003000
  69. 4 2013-01-01 00:00:00.004000
  70. 5 2013-01-01 00:00:00.005000
  71. 6 2013-01-01 00:00:00.006000
  72. 7 2013-01-01 00:00:00.007000
  73. 8 2013-01-01 00:00:00.008000
  74. 9 2013-01-01 00:00:00.009000
  75. 10 2013-01-01 00:00:00.010000
  76. 11 2013-01-01 00:00:00.011000
  77. 12 2013-01-01 00:00:00.012000
  78. 13 2013-01-01 00:00:00.013000
  79. 14 2013-01-01 00:00:00.014000
  80. ...
  81. 985 2013-01-01 00:00:00.985000
  82. 986 2013-01-01 00:00:00.986000
  83. 987 2013-01-01 00:00:00.987000
  84. 988 2013-01-01 00:00:00.988000
  85. 989 2013-01-01 00:00:00.989000
  86. 990 2013-01-01 00:00:00.990000
  87. 991 2013-01-01 00:00:00.991000
  88. 992 2013-01-01 00:00:00.992000
  89. 993 2013-01-01 00:00:00.993000
  90. 994 2013-01-01 00:00:00.994000
  91. 995 2013-01-01 00:00:00.995000
  92. 996 2013-01-01 00:00:00.996000
  93. 997 2013-01-01 00:00:00.997000
  94. 998 2013-01-01 00:00:00.998000
  95. 999 2013-01-01 00:00:00.999000
  96. Length: 1000, dtype: datetime64[ns]
  97.  
  98. In [9]: pd.DatetimeIndex(s).asi8/10**6
  99. Out[9]:
  100. array([1356998400000, 1356998400001, 1356998400002, 1356998400003,
  101. 1356998400004, 1356998400005, 1356998400006, 1356998400007,
  102. 1356998400008, 1356998400009, 1356998400010, 1356998400011,
  103. ...
  104. 1356998400992, 1356998400993, 1356998400994, 1356998400995,
  105. 1356998400996, 1356998400997, 1356998400998, 1356998400999])
  106.  
  107. In [12]: s = Series(date_range('20130101',periods=1000000,freq='ms'))
  108.  
  109. In [13]: %timeit pd.DatetimeIndex(s).asi8/10**6
  110. 100 loops, best of 3: 11 ms per loop
  111.  
  112. >>> ts = '11:52:55.162'
  113. >>> ts1 = map(float, ts.split(':'))
  114. >>> ts1
  115. [11.0, 52.0, 55.162]
  116. >>> ts2 = [60**(2-i)*n for i, n in enumerate(ts1)]
  117. >>> ts2
  118. [39600.0, 3120.0, 55.162]
  119. >>> ts3 = sum(ts2)
  120. >>> ts3
  121. 42775.162
  122. >>> seconds = sum(60**(2-i)*n for i, n in enumerate(map(float, ts.split(':'))))
  123. >>> seconds
  124. 42775.162
  125. >>>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement