diff --git a/pandas/core/indexes/datetimes.py b/pandas/core/indexes/datetimes.py index 9db30ce710c0d..dcc28446f50e5 100644 --- a/pandas/core/indexes/datetimes.py +++ b/pandas/core/indexes/datetimes.py @@ -657,7 +657,7 @@ def get_value(self, series, key): return series.take(locs) try: - return com.maybe_box(self, Index.get_value(self, series, key), series, key) + value = Index.get_value(self, series, key) except KeyError: try: loc = self._get_string_slice(key) @@ -669,6 +669,8 @@ def get_value(self, series, key): return self.get_value_maybe_box(series, key) except (TypeError, ValueError, KeyError): raise KeyError(key) + else: + return com.maybe_box(self, value, series, key) def get_value_maybe_box(self, series, key): # needed to localize naive datetimes diff --git a/pandas/core/indexes/period.py b/pandas/core/indexes/period.py index d34ac1a541d27..5815d4a8ecb16 100644 --- a/pandas/core/indexes/period.py +++ b/pandas/core/indexes/period.py @@ -509,7 +509,7 @@ def get_value(self, series, key): """ s = com.values_from_object(series) try: - return com.maybe_box(self, super().get_value(s, key), series, key) + value = super().get_value(s, key) except (KeyError, IndexError): if isinstance(key, str): asdt, parsed, reso = parse_time_string(key, self.freq) @@ -541,6 +541,8 @@ def get_value(self, series, key): period = Period(key, self.freq) key = period.value if isna(period) else period.ordinal return com.maybe_box(self, self._int64index.get_value(s, key), series, key) + else: + return com.maybe_box(self, value, series, key) @Appender(_index_shared_docs["get_indexer"] % _index_doc_kwargs) def get_indexer(self, target, method=None, limit=None, tolerance=None):