CLN: small clean-up of IntervalIndex (#22956) · pandas-dev/pandas@04ea51d (original) (raw)
`@@ -146,17 +146,13 @@ class IntervalIndex(IntervalMixin, Index):
`
146
146
`_mask = None
`
147
147
``
148
148
`def new(cls, data, closed=None, dtype=None, copy=False,
`
149
``
`-
name=None, fastpath=False, verify_integrity=True):
`
150
``
-
151
``
`-
if fastpath:
`
152
``
`-
return cls._simple_new(data, name)
`
``
149
`+
name=None, verify_integrity=True):
`
153
150
``
154
151
`if name is None and hasattr(data, 'name'):
`
155
152
`name = data.name
`
156
153
``
157
154
`with rewrite_exception("IntervalArray", cls.name):
`
158
155
`array = IntervalArray(data, closed=closed, copy=copy, dtype=dtype,
`
159
``
`-
fastpath=fastpath,
`
160
156
`verify_integrity=verify_integrity)
`
161
157
``
162
158
`return cls._simple_new(array, name)
`
`@@ -187,14 +183,6 @@ def _shallow_copy(self, left=None, right=None, **kwargs):
`
187
183
`attributes.update(kwargs)
`
188
184
`return self._simple_new(result, **attributes)
`
189
185
``
190
``
`-
@cache_readonly
`
191
``
`-
def hasnans(self):
`
192
``
`-
"""
`
193
``
`-
Return if the IntervalIndex has any nans; enables various performance
`
194
``
`-
speedups
`
195
``
`-
"""
`
196
``
`-
return self._isnan.any()
`
197
``
-
198
186
`@cache_readonly
`
199
187
`def _isnan(self):
`
200
188
`"""Return a mask indicating if each value is NA"""
`
`@@ -206,10 +194,6 @@ def _isnan(self):
`
206
194
`def _engine(self):
`
207
195
`return IntervalTree(self.left, self.right, closed=self.closed)
`
208
196
``
209
``
`-
@property
`
210
``
`-
def _constructor(self):
`
211
``
`-
return type(self)
`
212
``
-
213
197
`def contains(self, key):
`
214
198
`"""
`
215
199
` return a boolean if this key is IN the index
`
`@@ -394,18 +378,7 @@ def _values(self):
`
394
378
``
395
379
`@cache_readonly
`
396
380
`def _ndarray_values(self):
`
397
``
`-
left = self.left
`
398
``
`-
right = self.right
`
399
``
`-
mask = self._isnan
`
400
``
`-
closed = self.closed
`
401
``
-
402
``
`-
result = np.empty(len(left), dtype=object)
`
403
``
`-
for i in range(len(left)):
`
404
``
`-
if mask[i]:
`
405
``
`-
result[i] = np.nan
`
406
``
`-
else:
`
407
``
`-
result[i] = Interval(left[i], right[i], closed)
`
408
``
`-
return result
`
``
381
`+
return np.array(self._data)
`
409
382
``
410
383
`def array(self, result=None):
`
411
384
`""" the array interface, return my values """
`
`@@ -892,18 +865,12 @@ def take(self, indices, axis=0, allow_fill=True,
`
892
865
`return self._simple_new(result, **attributes)
`
893
866
``
894
867
`def getitem(self, value):
`
895
``
`-
mask = self._isnan[value]
`
896
``
`-
if is_scalar(mask) and mask:
`
897
``
`-
return self._na_value
`
898
``
-
899
``
`-
left = self.left[value]
`
900
``
`-
right = self.right[value]
`
901
``
-
902
``
`-
scalar
`
903
``
`-
if not isinstance(left, Index):
`
904
``
`-
return Interval(left, right, self.closed)
`
905
``
-
906
``
`-
return self._shallow_copy(left, right)
`
``
868
`+
result = self._data[value]
`
``
869
`+
if isinstance(result, IntervalArray):
`
``
870
`+
return self._shallow_copy(result)
`
``
871
`+
else:
`
``
872
`+
scalar
`
``
873
`+
return result
`
907
874
``
908
875
`# repr associated methods are based on MultiIndex
`
909
876
``