MCPcopy
hub / github.com/pandas-dev/pandas / _get_fill_indexer

Method _get_fill_indexer

pandas/core/indexes/base.py:3904–3934  ·  view source on GitHub ↗
(
        self, target: Index, method: str_t, limit: int | None = None, tolerance=None
    )

Source from the content-addressed store, hash-verified

3902
3903 @final
3904 def _get_fill_indexer(
3905 self, target: Index, method: str_t, limit: int | None = None, tolerance=None
3906 ) -> npt.NDArray[np.intp]:
3907 if self._is_multi:
3908 if not (self.is_monotonic_increasing or self.is_monotonic_decreasing):
3909 raise ValueError("index must be monotonic increasing or decreasing")
3910 encoded = self.append(target)._engine.values # type: ignore[union-attr]
3911 self_encoded = Index(encoded[: len(self)], copy=False)
3912 target_encoded = Index(encoded[len(self) :], copy=False)
3913 return self_encoded._get_fill_indexer(
3914 target_encoded, method, limit, tolerance
3915 )
3916
3917 if self.is_monotonic_increasing and target.is_monotonic_increasing:
3918 target_values = target._get_engine_target()
3919 own_values = self._get_engine_target()
3920 if not isinstance(target_values, np.ndarray) or not isinstance(
3921 own_values, np.ndarray
3922 ):
3923 raise NotImplementedError
3924
3925 if method == "pad":
3926 indexer = libalgos.pad(own_values, target_values, limit=limit)
3927 else:
3928 # i.e. "backfill"
3929 indexer = libalgos.backfill(own_values, target_values, limit=limit)
3930 else:
3931 indexer = self._get_fill_indexer_searchsorted(target, method, limit)
3932 if tolerance is not None and len(self):
3933 indexer = self._filter_indexer_tolerance(target, indexer, tolerance)
3934 return indexer
3935
3936 @final
3937 def _get_fill_indexer_searchsorted(

Callers 2

_get_indexerMethod · 0.95
_get_nearest_indexerMethod · 0.95

Calls 6

appendMethod · 0.95
_get_engine_targetMethod · 0.95
IndexClass · 0.85
padMethod · 0.80

Tested by

no test coverage detected