From a97db922d15b2353b60e46882256b8bb8f7f9dcf Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Sat, 18 Jan 2020 09:46:43 -0800 Subject: [PATCH] REF/CLN: Index.get_value wrapping incorrectly --- pandas/core/indexes/base.py | 19 +++++++++---------- pandas/core/series.py | 12 ------------ 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/pandas/core/indexes/base.py b/pandas/core/indexes/base.py index a630938afeb8a..5ce2b06ed7dbd 100644 --- a/pandas/core/indexes/base.py +++ b/pandas/core/indexes/base.py @@ -4639,7 +4639,8 @@ def get_value(self, series, key): k = self._convert_scalar_indexer(key, kind="getitem") try: - return self._engine.get_value(s, k, tz=getattr(series.dtype, "tz", None)) + loc = self._engine.get_loc(k) + except KeyError as e1: if len(self) > 0 and (self.holds_integer() or self.is_boolean()): raise @@ -4648,19 +4649,17 @@ def get_value(self, series, key): return libindex.get_value_at(s, key) except IndexError: raise - except TypeError: - # generator/iterator-like - if is_iterator(key): - raise InvalidIndexError(key) - else: - raise e1 except Exception: raise e1 except TypeError: # e.g. "[False] is an invalid key" - if is_scalar(key): - raise IndexError(key) - raise InvalidIndexError(key) + raise IndexError(key) + + else: + if is_scalar(loc): + tz = getattr(series.dtype, "tz", None) + return libindex.get_value_at(s, loc, tz=tz) + return series.iloc[loc] def set_value(self, arr, key, value): """ diff --git a/pandas/core/series.py b/pandas/core/series.py index ec9475c6dcba9..580e3745136d7 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -815,18 +815,6 @@ def __getitem__(self, key): try: result = self.index.get_value(self, key) - if not is_scalar(result): - if is_list_like(result) and not isinstance(result, Series): - - # we need to box if loc of the key isn't scalar here - # otherwise have inline ndarray/lists - try: - if not is_scalar(self.index.get_loc(key)): - result = self._constructor( - result, index=[key] * len(result), dtype=self.dtype - ).__finalize__(self) - except KeyError: - pass return result except InvalidIndexError: pass