From c32dd28bdcbc8042e5af3e932535e063a433a8dc Mon Sep 17 00:00:00 2001 From: Matt Roeschke Date: Sat, 29 Aug 2020 20:23:08 -0700 Subject: [PATCH 1/2] CLN: rolling.py --- pandas/core/window/rolling.py | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/pandas/core/window/rolling.py b/pandas/core/window/rolling.py index 39fcfcbe2bff6..c3cd3ee253a53 100644 --- a/pandas/core/window/rolling.py +++ b/pandas/core/window/rolling.py @@ -377,23 +377,15 @@ def _prep_values(self, values: Optional[np.ndarray] = None) -> np.ndarray: return values - def _wrap_result(self, result, block=None, obj=None): + def _wrap_result(self, result: np.ndarray) -> "Series": """ - Wrap a single result. + Wrap a single 1D result. """ - if obj is None: - obj = self._selected_obj - index = obj.index + obj = self._selected_obj - if isinstance(result, np.ndarray): - - if result.ndim == 1: - from pandas import Series - - return Series(result, index, name=obj.name) + from pandas import Series - return type(obj)(result, index=index, columns=block.columns) - return result + return Series(result, obj.index, name=obj.name) def _wrap_results(self, results, obj, skipped: List[int]) -> FrameOrSeriesUnion: """ @@ -454,7 +446,7 @@ def _insert_on_column(self, result: "DataFrame", obj: "DataFrame"): # insert at the end result[name] = extra_col - def _center_window(self, result, window) -> np.ndarray: + def _center_window(self, result: np.ndarray, window) -> np.ndarray: """ Center the result in the window. """ @@ -513,7 +505,6 @@ def _apply_series(self, homogeneous_func: Callable[..., ArrayLike]) -> "Series": Series version of _apply_blockwise """ _, obj = self._create_blocks(self._selected_obj) - values = obj.values try: values = self._prep_values(obj.values) @@ -535,7 +526,7 @@ def _apply_blockwise( # This isn't quite blockwise, since `blocks` is actually a collection # of homogenenous DataFrames. - blocks, obj = self._create_blocks(self._selected_obj) + _, obj = self._create_blocks(self._selected_obj) mgr = obj._mgr def hfunc(bvalues: ArrayLike) -> ArrayLike: From f27f1040f91d1f639885915b460ac28cc564dcad Mon Sep 17 00:00:00 2001 From: Matt Roeschke Date: Sun, 30 Aug 2020 13:41:30 -0700 Subject: [PATCH 2/2] Use obj._constructor instead --- pandas/core/window/rolling.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pandas/core/window/rolling.py b/pandas/core/window/rolling.py index c3cd3ee253a53..05cc996178051 100644 --- a/pandas/core/window/rolling.py +++ b/pandas/core/window/rolling.py @@ -383,9 +383,7 @@ def _wrap_result(self, result: np.ndarray) -> "Series": """ obj = self._selected_obj - from pandas import Series - - return Series(result, obj.index, name=obj.name) + return obj._constructor(result, obj.index, name=obj.name) def _wrap_results(self, results, obj, skipped: List[int]) -> FrameOrSeriesUnion: """