|
1 | 1 | from pandas import (
|
2 | 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 |
|
|
0 commit comments