9
9
10
10
from pandas .tseries .frequencies import to_offset
11
11
12
- from .tslib import _sizes
12
+ from .tslib import _sizes , _tzs
13
+
14
+ try :
15
+ from pandas ._libs .tslibs .vectorized import dt64arr_to_periodarr
16
+ except ImportError :
17
+ from pandas ._libs .tslibs .period import dt64arr_to_periodarr
13
18
14
19
15
20
class PeriodProperties :
@@ -75,26 +80,29 @@ def time_period_constructor(self, freq, is_offset):
75
80
Period ("2012-06-01" , freq = freq )
76
81
77
82
83
+ _freq_ints = [
84
+ 1000 ,
85
+ 1011 , # Annual - November End
86
+ 2000 ,
87
+ 2011 , # Quarterly - November End
88
+ 3000 ,
89
+ 4000 ,
90
+ 4006 , # Weekly - Saturday End
91
+ 5000 ,
92
+ 6000 ,
93
+ 7000 ,
94
+ 8000 ,
95
+ 9000 ,
96
+ 10000 ,
97
+ 11000 ,
98
+ 12000 ,
99
+ ]
100
+
101
+
78
102
class TimePeriodArrToDT64Arr :
79
103
params = [
80
104
_sizes ,
81
- [
82
- 1000 ,
83
- 1011 , # Annual - November End
84
- 2000 ,
85
- 2011 , # Quarterly - November End
86
- 3000 ,
87
- 4000 ,
88
- 4006 , # Weekly - Saturday End
89
- 5000 ,
90
- 6000 ,
91
- 7000 ,
92
- 8000 ,
93
- 9000 ,
94
- 10000 ,
95
- 11000 ,
96
- 12000 ,
97
- ],
105
+ _freq_ints ,
98
106
]
99
107
param_names = ["size" , "freq" ]
100
108
@@ -104,3 +112,19 @@ def setup(self, size, freq):
104
112
105
113
def time_periodarray_to_dt64arr (self , size , freq ):
106
114
periodarr_to_dt64arr (self .i8values , freq )
115
+
116
+
117
+ class TimeDT64ArrToPeriodArr :
118
+ params = [
119
+ _sizes ,
120
+ _freq_ints ,
121
+ _tzs ,
122
+ ]
123
+ param_names = ["size" , "freq" , "tz" ]
124
+
125
+ def setup (self , size , freq , tz ):
126
+ arr = np .arange (10 , dtype = "i8" ).repeat (size // 10 )
127
+ self .i8values = arr
128
+
129
+ def time_dt64arr_to_periodarr (self , size , freq , tz ):
130
+ dt64arr_to_periodarr (self .i8values , freq , tz )
0 commit comments