1
1
import datetime
2
2
3
3
import numpy as np
4
- import pandas as pd
5
-
6
- from pandas import to_timedelta , Timestamp , Timedelta
4
+ from pandas import Series , timedelta_range , to_timedelta , Timestamp , Timedelta
7
5
8
6
9
7
class TimedeltaConstructor (object ):
8
+
10
9
goal_time = 0.2
11
10
12
11
def time_from_int (self ):
@@ -36,35 +35,44 @@ def time_from_missing(self):
36
35
37
36
38
37
class ToTimedelta (object ):
38
+
39
39
goal_time = 0.2
40
40
41
41
def setup (self ):
42
- self .arr = np .random .randint (0 , 1000 , size = 10000 )
43
- self .arr2 = ['{0} days' .format (i ) for i in self .arr ]
44
-
45
- self .arr3 = np .random .randint (0 , 60 , size = 10000 )
46
- self .arr3 = ['00:00:{0:02d}' .format (i ) for i in self .arr3 ]
47
-
48
- self .arr4 = list (self .arr2 )
49
- self .arr4 [- 1 ] = 'apple'
42
+ self .ints = np .random .randint (0 , 60 , size = 10000 )
43
+ self .str_days = []
44
+ self .str_seconds = []
45
+ for i in self .ints :
46
+ self .str_days .append ('{0} days' .format (i ))
47
+ self .str_seconds .append ('00:00:{0:02d}' .format (i ))
50
48
51
49
def time_convert_int (self ):
52
- to_timedelta (self .arr , unit = 's' )
50
+ to_timedelta (self .ints , unit = 's' )
53
51
54
- def time_convert_string (self ):
55
- to_timedelta (self .arr2 )
52
+ def time_convert_string_days (self ):
53
+ to_timedelta (self .str_days )
56
54
57
55
def time_convert_string_seconds (self ):
58
- to_timedelta (self .arr3 )
56
+ to_timedelta (self .str_seconds )
57
+
58
+
59
+ class ToTimedeltaErrors (object ):
59
60
60
- def time_convert_coerce (self ):
61
- to_timedelta (self .arr4 , errors = 'coerce' )
61
+ goal_time = 0.2
62
+ params = ['coerce' , 'ignore' ]
63
+ param_names = ['errors' ]
64
+
65
+ def setup (self , errors ):
66
+ ints = np .random .randint (0 , 60 , size = 10000 )
67
+ self .arr = ['{0} days' .format (i ) for i in ints ]
68
+ self .arr [- 1 ] = 'apple'
62
69
63
- def time_convert_ignore (self ):
64
- to_timedelta (self .arr4 , errors = 'ignore' )
70
+ def time_convert (self , errors ):
71
+ to_timedelta (self .arr , errors = errors )
65
72
66
73
67
74
class TimedeltaOps (object ):
75
+
68
76
goal_time = 0.2
69
77
70
78
def setup (self ):
@@ -76,43 +84,46 @@ def time_add_td_ts(self):
76
84
77
85
78
86
class TimedeltaProperties (object ):
87
+
79
88
goal_time = 0.2
80
89
81
- def setup (self ):
82
- self .td = Timedelta (days = 365 , minutes = 35 , seconds = 25 , milliseconds = 35 )
90
+ def setup_cache (self ):
91
+ td = Timedelta (days = 365 , minutes = 35 , seconds = 25 , milliseconds = 35 )
92
+ return td
83
93
84
- def time_timedelta_days (self ):
85
- self . td .days
94
+ def time_timedelta_days (self , td ):
95
+ td .days
86
96
87
- def time_timedelta_seconds (self ):
88
- self . td .seconds
97
+ def time_timedelta_seconds (self , td ):
98
+ td .seconds
89
99
90
- def time_timedelta_microseconds (self ):
91
- self . td .microseconds
100
+ def time_timedelta_microseconds (self , td ):
101
+ td .microseconds
92
102
93
- def time_timedelta_nanoseconds (self ):
94
- self . td .nanoseconds
103
+ def time_timedelta_nanoseconds (self , td ):
104
+ td .nanoseconds
95
105
96
106
97
107
class DatetimeAccessor (object ):
108
+
98
109
goal_time = 0.2
99
110
100
- def setup (self ):
101
- self . N = 100000
102
- self . series = pd . Series (
103
- pd . timedelta_range ( '1 days' , periods = self . N , freq = 'h' ))
111
+ def setup_cache (self ):
112
+ N = 100000
113
+ series = Series (timedelta_range ( '1 days' , periods = N , freq = 'h' ))
114
+ return series
104
115
105
- def time_dt_accessor (self ):
106
- self . series .dt
116
+ def time_dt_accessor (self , series ):
117
+ series .dt
107
118
108
- def time_timedelta_dt_accessor_days (self ):
109
- self . series .dt .days
119
+ def time_timedelta_days (self , series ):
120
+ series .dt .days
110
121
111
- def time_timedelta_dt_accessor_seconds (self ):
112
- self . series .dt .seconds
122
+ def time_timedelta_seconds (self , series ):
123
+ series .dt .seconds
113
124
114
- def time_timedelta_dt_accessor_microseconds (self ):
115
- self . series .dt .microseconds
125
+ def time_timedelta_microseconds (self , series ):
126
+ series .dt .microseconds
116
127
117
- def time_timedelta_dt_accessor_nanoseconds (self ):
118
- self . series .dt .nanoseconds
128
+ def time_timedelta_nanoseconds (self , series ):
129
+ series .dt .nanoseconds
0 commit comments