From cf4e7d6f41f000b5013a22a15584f8092dc0365c Mon Sep 17 00:00:00 2001 From: tp Date: Fri, 7 Feb 2020 18:36:09 +0000 Subject: [PATCH 1/2] BUG: Too aggressive typing NDFrame.align --- doc/source/whatsnew/v1.0.2.rst | 1 + pandas/core/generic.py | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/doc/source/whatsnew/v1.0.2.rst b/doc/source/whatsnew/v1.0.2.rst index 70aaaa6d0a60d..b055b44274bd8 100644 --- a/doc/source/whatsnew/v1.0.2.rst +++ b/doc/source/whatsnew/v1.0.2.rst @@ -16,6 +16,7 @@ Fixed regressions ~~~~~~~~~~~~~~~~~ - Fixed regression in :meth:`DataFrame.to_excel` when ``columns`` kwarg is passed (:issue:`31677`) +- Fixed regression in :meth:`Series.align` when ``other`` is a DataFrame and ``method`` is not None (:issue:`31785`) - .. --------------------------------------------------------------------------- diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 313d40b575629..35a6643a80a25 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -8360,9 +8360,7 @@ def _align_frame( left = self._ensure_type( left.fillna(method=method, axis=fill_axis, limit=limit) ) - right = self._ensure_type( - right.fillna(method=method, axis=fill_axis, limit=limit) - ) + right = right.fillna(method=method, axis=fill_axis, limit=limit) # if DatetimeIndex have different tz, convert to UTC if is_datetime64tz_dtype(left.index): From 0a4e997a2af020493aea9ed9b2fbbf9910205a4e Mon Sep 17 00:00:00 2001 From: tp Date: Sat, 8 Feb 2020 10:09:29 +0000 Subject: [PATCH 2/2] Add tests --- pandas/tests/series/indexing/test_alter_index.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pandas/tests/series/indexing/test_alter_index.py b/pandas/tests/series/indexing/test_alter_index.py index dc8b91de3d09b..05bd967903e9d 100644 --- a/pandas/tests/series/indexing/test_alter_index.py +++ b/pandas/tests/series/indexing/test_alter_index.py @@ -153,6 +153,17 @@ def test_align_multiindex(): tm.assert_series_equal(expr, res2l) +@pytest.mark.parametrize("method", ["backfill", "bfill", "pad", "ffill", None]) +def test_align_method(method): + # GH31788 + ser = pd.Series(range(3), index=range(3)) + df = pd.DataFrame(0.0, index=range(3), columns=range(3)) + + result_ser, result_df = ser.align(df, method=method) + tm.assert_series_equal(result_ser, ser) + tm.assert_frame_equal(result_df, df) + + def test_reindex(datetime_series, string_series): identity = string_series.reindex(string_series.index)