Skip to content

Commit 20ba2c1

Browse files
committed
PERF: add asv benchmarks for TimedeltaIndex
1 parent 2ecc5e8 commit 20ba2c1

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

asv_bench/benchmarks/timedelta.py

+35-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import datetime
22

33
import numpy as np
4-
from pandas import Series, timedelta_range, to_timedelta, Timestamp, Timedelta
4+
from pandas import Series, timedelta_range, to_timedelta, Timestamp, \
5+
Timedelta, TimedeltaIndex, DataFrame
56

67

78
class TimedeltaConstructor(object):
@@ -116,3 +117,36 @@ def time_timedelta_microseconds(self, series):
116117

117118
def time_timedelta_nanoseconds(self, series):
118119
series.dt.nanoseconds
120+
121+
122+
class TimedeltaIndexing(object):
123+
124+
def setup(self):
125+
self.index = TimedeltaIndex(start='1985', periods=1000, freq='D')
126+
self.index2 = TimedeltaIndex(start='1986', periods=1000, freq='D')
127+
self.series = Series(range(1000), index=self.index)
128+
self.timedelta = self.index[500]
129+
130+
def time_get_loc(self):
131+
self.index.get_loc(self.timedelta)
132+
133+
def time_shape(self):
134+
self.index.shape
135+
136+
def time_shallow_copy(self):
137+
self.index._shallow_copy()
138+
139+
def time_series_loc(self):
140+
self.series.loc[self.timedelta]
141+
142+
def time_align(self):
143+
DataFrame({'a': self.series, 'b': self.series[:500]})
144+
145+
def time_intersection(self):
146+
self.index.intersection(self.index2)
147+
148+
def time_union(self):
149+
self.index.union(self.index2)
150+
151+
def time_unique(self):
152+
self.index.unique()

0 commit comments

Comments
 (0)