|
3 | 3 |
|
4 | 4 |
|
5 | 5 | class PeriodProperties(object):
|
6 |
| - def setup(self): |
7 |
| - self.per = Period('2012-06-01', freq='M') |
| 6 | + params = ['M', 'min'] |
| 7 | + param_names = ['freq'] |
| 8 | + |
| 9 | + def setup(self, freq): |
| 10 | + self.per = Period('2012-06-01', freq=freq) |
8 | 11 |
|
9 |
| - def time_year(self): |
| 12 | + def time_year(self, freq): |
10 | 13 | self.per.year
|
11 | 14 |
|
12 |
| - def time_month(self): |
| 15 | + def time_month(self, freq): |
13 | 16 | self.per.month
|
14 | 17 |
|
15 |
| - def time_quarter(self): |
16 |
| - self.per.quarter |
17 |
| - |
18 |
| - def time_day(self): |
| 18 | + def time_day(self, freq): |
19 | 19 | self.per.day
|
20 | 20 |
|
21 |
| - def time_hour(self): |
| 21 | + def time_hour(self, freq): |
22 | 22 | self.per.hour
|
23 | 23 |
|
24 |
| - def time_minute(self): |
25 |
| - self.per.second |
| 24 | + def time_minute(self, freq): |
| 25 | + self.per.minute |
26 | 26 |
|
27 |
| - def time_second(self): |
| 27 | + def time_second(self, freq): |
28 | 28 | self.per.second
|
29 | 29 |
|
30 |
| - def time_leap_year(self): |
31 |
| - self.per.is_leapyear |
32 |
| - |
33 |
| - |
34 |
| -class Constructor(object): |
35 |
| - goal_time = 0.2 |
36 |
| - |
37 |
| - def setup(self): |
38 |
| - self.rng = date_range('1985', periods=1000) |
39 |
| - self.rng2 = date_range('1985', periods=1000).to_pydatetime() |
40 |
| - |
41 |
| - def time_from_date_range(self): |
42 |
| - PeriodIndex(self.rng, freq='D') |
43 |
| - |
44 |
| - def time_from_pydatetime(self): |
45 |
| - PeriodIndex(self.rng2, freq='D') |
| 30 | + def time_is_leap_year(self, freq): |
| 31 | + self.per.is_leap_year |
46 | 32 |
|
| 33 | + def time_quarter(self, freq): |
| 34 | + self.per.quarter |
47 | 35 |
|
48 |
| -class DataFrame(object): |
49 |
| - goal_time = 0.2 |
| 36 | + def time_qyear(self, freq): |
| 37 | + self.per.qyear |
50 | 38 |
|
51 |
| - def setup(self): |
52 |
| - self.rng = pd.period_range(start='1/1/1990', freq='S', periods=20000) |
53 |
| - self.df = pd.DataFrame(index=range(len(self.rng))) |
| 39 | + def time_week(self, freq): |
| 40 | + self.per.week |
54 | 41 |
|
55 |
| - def time_setitem_period_column(self): |
56 |
| - self.df['col'] = self.rng |
| 42 | + def time_daysinmonth(self, freq): |
| 43 | + self.per.daysinmonth |
57 | 44 |
|
| 45 | + def time_dayofweek(self, freq): |
| 46 | + self.per.dayofweek |
58 | 47 |
|
59 |
| -class Algorithms(object): |
60 |
| - goal_time = 0.2 |
| 48 | + def time_dayofyear(self, freq): |
| 49 | + self.per.dayofyear |
61 | 50 |
|
62 |
| - def setup(self): |
63 |
| - data = [Period('2011-01', freq='M'), Period('2011-02', freq='M'), |
64 |
| - Period('2011-03', freq='M'), Period('2011-04', freq='M')] |
65 |
| - self.s = Series(data * 1000) |
66 |
| - self.i = PeriodIndex(data, freq='M') |
| 51 | + def time_start_time(self, freq): |
| 52 | + self.per.start_time |
67 | 53 |
|
68 |
| - def time_drop_duplicates_pseries(self): |
69 |
| - self.s.drop_duplicates() |
| 54 | + def time_end_time(self, freq): |
| 55 | + self.per.end_time |
70 | 56 |
|
71 |
| - def time_drop_duplicates_pindex(self): |
72 |
| - self.i.drop_duplicates() |
73 | 57 |
|
74 |
| - def time_value_counts_pseries(self): |
75 |
| - self.s.value_counts() |
| 58 | +class PeriodUnaryMethods(object): |
| 59 | + params = ['M', 'min'] |
| 60 | + param_names = ['freq'] |
76 | 61 |
|
77 |
| - def time_value_counts_pindex(self): |
78 |
| - self.i.value_counts() |
| 62 | + def setup(self, freq): |
| 63 | + self.per = Period('2012-06-01', freq=freq) |
79 | 64 |
|
| 65 | + def time_to_timestamp(self, freq): |
| 66 | + self.per.to_timestamp() |
80 | 67 |
|
81 |
| -class Properties(object): |
82 |
| - def setup(self): |
83 |
| - self.per = Period('2017-09-06 08:28', freq='min') |
| 68 | + def time_now(self, freq): |
| 69 | + self.per.now(freq) |
84 | 70 |
|
85 |
| - def time_year(self): |
86 |
| - self.per.year |
| 71 | + def time_asfreq(self, freq): |
| 72 | + self.per.asfreq('A') |
87 | 73 |
|
88 |
| - def time_month(self): |
89 |
| - self.per.month |
90 | 74 |
|
91 |
| - def time_day(self): |
92 |
| - self.per.day |
| 75 | +class PeriodIndexConstructor(object): |
| 76 | + goal_time = 0.2 |
93 | 77 |
|
94 |
| - def time_hour(self): |
95 |
| - self.per.hour |
| 78 | + params = ['D'] |
| 79 | + param_names = ['freq'] |
96 | 80 |
|
97 |
| - def time_minute(self): |
98 |
| - self.per.minute |
| 81 | + def setup(self, freq): |
| 82 | + self.rng = date_range('1985', periods=1000) |
| 83 | + self.rng2 = date_range('1985', periods=1000).to_pydatetime() |
99 | 84 |
|
100 |
| - def time_second(self): |
101 |
| - self.per.second |
| 85 | + def time_from_date_range(self, freq): |
| 86 | + PeriodIndex(self.rng, freq=freq) |
102 | 87 |
|
103 |
| - def time_is_leap_year(self): |
104 |
| - self.per.is_leap_year |
| 88 | + def time_from_pydatetime(self, freq): |
| 89 | + PeriodIndex(self.rng2, freq=freq) |
105 | 90 |
|
106 |
| - def time_quarter(self): |
107 |
| - self.per.quarter |
108 | 91 |
|
109 |
| - def time_qyear(self): |
110 |
| - self.per.qyear |
| 92 | +class DataFramePeriodColumn(object): |
| 93 | + goal_time = 0.2 |
111 | 94 |
|
112 |
| - def time_week(self): |
113 |
| - self.per.week |
| 95 | + def setup_cache(self): |
| 96 | + rng = pd.period_range(start='1/1/1990', freq='S', periods=20000) |
| 97 | + df = pd.DataFrame(index=range(len(rng))) |
| 98 | + return rng, df |
114 | 99 |
|
115 |
| - def time_daysinmonth(self): |
116 |
| - self.per.daysinmonth |
| 100 | + def time_setitem_period_column(self, tup): |
| 101 | + rng, df = tup |
| 102 | + df['col'] = rng |
117 | 103 |
|
118 |
| - def time_dayofweek(self): |
119 |
| - self.per.dayofweek |
120 | 104 |
|
121 |
| - def time_dayofyear(self): |
122 |
| - self.per.dayofyear |
| 105 | +class Algorithms(object): |
| 106 | + goal_time = 0.2 |
123 | 107 |
|
124 |
| - def time_start_time(self): |
125 |
| - self.per.start_time |
| 108 | + params = ['index', 'series'] |
| 109 | + param_names = ['typ'] |
126 | 110 |
|
127 |
| - def time_end_time(self): |
128 |
| - self.per.end_time |
| 111 | + def setup(self, typ): |
| 112 | + data = [Period('2011-01', freq='M'), Period('2011-02', freq='M'), |
| 113 | + Period('2011-03', freq='M'), Period('2011-04', freq='M')] |
129 | 114 |
|
130 |
| - def time_to_timestamp(): |
131 |
| - self.per.to_timestamp() |
| 115 | + if typ == 'index': |
| 116 | + self.vector = PeriodIndex(data * 1000, freq='M') |
| 117 | + elif typ == 'series': |
| 118 | + self.vector = Series(data * 1000) |
132 | 119 |
|
133 |
| - def time_now(): |
134 |
| - self.per.now() |
| 120 | + def time_drop_duplicates(self, typ): |
| 121 | + self.vector.drop_duplicates() |
135 | 122 |
|
136 |
| - def time_asfreq(): |
137 |
| - self.per.asfreq('A') |
| 123 | + def time_value_counts(self, typ): |
| 124 | + self.vector.value_counts() |
138 | 125 |
|
139 | 126 |
|
140 |
| -class period_standard_indexing(object): |
| 127 | +class Indexing(object): |
141 | 128 | goal_time = 0.2
|
142 | 129 |
|
143 | 130 | def setup(self):
|
|
0 commit comments