From b2b1dedfdd99a65f44521627204cab23de1664dd Mon Sep 17 00:00:00 2001 From: Luke Manley Date: Sat, 31 Dec 2022 09:20:05 -0500 Subject: [PATCH 1/2] CLN/TST: test_series_align_multiindex_containing_nan --- .../indexing/multiindex/test_multiindex.py | 76 +++++++------------ 1 file changed, 26 insertions(+), 50 deletions(-) diff --git a/pandas/tests/indexing/multiindex/test_multiindex.py b/pandas/tests/indexing/multiindex/test_multiindex.py index f5f58e7e818d9..7dd0c0d9dcc46 100644 --- a/pandas/tests/indexing/multiindex/test_multiindex.py +++ b/pandas/tests/indexing/multiindex/test_multiindex.py @@ -151,57 +151,33 @@ def test_rename_multiindex_with_duplicates(self): expected = DataFrame(index=mi2) tm.assert_frame_equal(df, expected) - @pytest.mark.parametrize( - "data_result, data_expected", - [ - ( - [ - [(81.0, np.nan), (np.nan, np.nan)], - [(np.nan, np.nan), (82.0, np.nan)], - [1, 2], - [1, 2], - ], - [ - [[81, 82.0, np.nan], Series([np.nan, np.nan, np.nan])], - [[81, 82.0, np.nan], Series([np.nan, np.nan, np.nan])], - [1, np.nan, 2], - [np.nan, 2, 1], - ], - ), - ( - [ - [(81.0, np.nan), (np.nan, np.nan)], - [(np.nan, np.nan), (81.0, np.nan)], - [1, 2], - [1, 2], - ], - [ - [[81.0, np.nan], Series([np.nan, np.nan])], - [[81.0, np.nan], Series([np.nan, np.nan])], - [1, 2], - [2, 1], - ], - ), - ], - ) - def test_subtracting_two_series_with_unordered_index_and_all_nan_index( - self, data_result, data_expected - ): + def test_series_align_multiindex_containing_nan(self): # GH 38439 - # TODO: Refactor. This is impossible to understand GH#49443 - a_index_result = MultiIndex.from_tuples(data_result[0]) - b_index_result = MultiIndex.from_tuples(data_result[1]) - a_series_result = Series(data_result[2], index=a_index_result) - b_series_result = Series(data_result[3], index=b_index_result) - result = a_series_result.align(b_series_result) - - a_index_expected = MultiIndex.from_arrays(data_expected[0]) - b_index_expected = MultiIndex.from_arrays(data_expected[1]) - a_series_expected = Series(data_expected[2], index=a_index_expected) - b_series_expected = Series(data_expected[3], index=b_index_expected) - - tm.assert_series_equal(result[0], a_series_expected) - tm.assert_series_equal(result[1], b_series_expected) + mi1 = MultiIndex.from_arrays([[81.0, np.nan], [np.nan, np.nan]]) + mi2 = MultiIndex.from_arrays([[np.nan, 82.0], [np.nan, np.nan]]) + ser1 = Series([1, 2], index=mi1) + ser2 = Series([1, 2], index=mi2) + result1, result2 = ser1.align(ser2) + + mi = MultiIndex.from_arrays([[81.0, 82.0, np.nan], [np.nan, np.nan, np.nan]]) + expected1 = Series([1.0, np.nan, 2.0], index=mi) + expected2 = Series([np.nan, 2.0, 1.0], index=mi) + + tm.assert_series_equal(result1, expected1) + tm.assert_series_equal(result2, expected2) + + mi1 = MultiIndex.from_arrays([[81.0, np.nan], [np.nan, np.nan]]) + mi2 = MultiIndex.from_arrays([[np.nan, 81.0], [np.nan, np.nan]]) + ser1 = Series([1, 2], index=mi1) + ser2 = Series([1, 2], index=mi2) + result1, result2 = ser1.align(ser2) + + mi = MultiIndex.from_arrays([[81.0, np.nan], [np.nan, np.nan]]) + expected1 = Series([1, 2], index=mi) + expected2 = Series([2, 1], index=mi) + + tm.assert_series_equal(result1, expected1) + tm.assert_series_equal(result2, expected2) def test_nunique_smoke(self): # GH 34019 From e309e100d5e9c9db86f67bd8265524fb0d7d71ab Mon Sep 17 00:00:00 2001 From: Luke Manley Date: Tue, 3 Jan 2023 17:47:35 -0500 Subject: [PATCH 2/2] split test into two --- pandas/tests/indexing/multiindex/test_multiindex.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pandas/tests/indexing/multiindex/test_multiindex.py b/pandas/tests/indexing/multiindex/test_multiindex.py index 7dd0c0d9dcc46..8e507212976ec 100644 --- a/pandas/tests/indexing/multiindex/test_multiindex.py +++ b/pandas/tests/indexing/multiindex/test_multiindex.py @@ -151,7 +151,7 @@ def test_rename_multiindex_with_duplicates(self): expected = DataFrame(index=mi2) tm.assert_frame_equal(df, expected) - def test_series_align_multiindex_containing_nan(self): + def test_series_align_multiindex_with_nan_overlap_only(self): # GH 38439 mi1 = MultiIndex.from_arrays([[81.0, np.nan], [np.nan, np.nan]]) mi2 = MultiIndex.from_arrays([[np.nan, 82.0], [np.nan, np.nan]]) @@ -166,6 +166,8 @@ def test_series_align_multiindex_containing_nan(self): tm.assert_series_equal(result1, expected1) tm.assert_series_equal(result2, expected2) + def test_series_align_multiindex_with_nan(self): + # GH 38439 mi1 = MultiIndex.from_arrays([[81.0, np.nan], [np.nan, np.nan]]) mi2 = MultiIndex.from_arrays([[np.nan, 81.0], [np.nan, np.nan]]) ser1 = Series([1, 2], index=mi1)