|
1 |
| -from pandas import (DataFrame, Series, Period, PeriodIndex, date_range, |
2 |
| - period_range) |
| 1 | +from pandas import ( |
| 2 | + DataFrame, Period, PeriodIndex, Series, date_range, period_range) |
| 3 | +from pandas.tseries.frequencies import to_offset |
3 | 4 |
|
4 | 5 |
|
5 | 6 | class PeriodProperties(object):
|
@@ -35,25 +36,48 @@ def time_asfreq(self, freq):
|
35 | 36 | self.per.asfreq('A')
|
36 | 37 |
|
37 | 38 |
|
| 39 | +class PeriodConstructor(object): |
| 40 | + params = [['D'], [True, False]] |
| 41 | + param_names = ['freq', 'is_offset'] |
| 42 | + |
| 43 | + def setup(self, freq, is_offset): |
| 44 | + if is_offset: |
| 45 | + self.freq = to_offset(freq) |
| 46 | + else: |
| 47 | + self.freq = freq |
| 48 | + |
| 49 | + def time_period_constructor(self, freq, is_offset): |
| 50 | + Period('2012-06-01', freq=freq) |
| 51 | + |
| 52 | + |
38 | 53 | class PeriodIndexConstructor(object):
|
39 | 54 |
|
40 |
| - params = ['D'] |
41 |
| - param_names = ['freq'] |
| 55 | + params = [['D'], [True, False]] |
| 56 | + param_names = ['freq', 'is_offset'] |
42 | 57 |
|
43 |
| - def setup(self, freq): |
| 58 | + def setup(self, freq, is_offset): |
44 | 59 | self.rng = date_range('1985', periods=1000)
|
45 | 60 | self.rng2 = date_range('1985', periods=1000).to_pydatetime()
|
46 | 61 | self.ints = list(range(2000, 3000))
|
47 |
| - |
48 |
| - def time_from_date_range(self, freq): |
| 62 | + self.daily_ints = date_range('1/1/2000', periods=1000, |
| 63 | + freq=freq).strftime('%Y%m%d').map(int) |
| 64 | + if is_offset: |
| 65 | + self.freq = to_offset(freq) |
| 66 | + else: |
| 67 | + self.freq = freq |
| 68 | + |
| 69 | + def time_from_date_range(self, freq, is_offset): |
49 | 70 | PeriodIndex(self.rng, freq=freq)
|
50 | 71 |
|
51 |
| - def time_from_pydatetime(self, freq): |
| 72 | + def time_from_pydatetime(self, freq, is_offset): |
52 | 73 | PeriodIndex(self.rng2, freq=freq)
|
53 | 74 |
|
54 |
| - def time_from_ints(self, freq): |
| 75 | + def time_from_ints(self, freq, is_offset): |
55 | 76 | PeriodIndex(self.ints, freq=freq)
|
56 | 77 |
|
| 78 | + def time_from_ints_daily(self, freq, is_offset): |
| 79 | + PeriodIndex(self.daily_ints, freq=freq) |
| 80 | + |
57 | 81 |
|
58 | 82 | class DataFramePeriodColumn(object):
|
59 | 83 |
|
@@ -94,7 +118,7 @@ def time_value_counts(self, typ):
|
94 | 118 | class Indexing(object):
|
95 | 119 |
|
96 | 120 | def setup(self):
|
97 |
| - self.index = PeriodIndex(start='1985', periods=1000, freq='D') |
| 121 | + self.index = period_range(start='1985', periods=1000, freq='D') |
98 | 122 | self.series = Series(range(1000), index=self.index)
|
99 | 123 | self.period = self.index[500]
|
100 | 124 |
|
|
0 commit comments