From cefaa07afce7bf5addc770e8dc18548860ebe78f Mon Sep 17 00:00:00 2001 From: ali Date: Fri, 24 Sep 2021 23:24:09 +0330 Subject: [PATCH 1/4] TST: added test for multi indexing when one column exclusively contains NaT(#38025) --- .../indexing/multiindex/test_multiindex.py | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/pandas/tests/indexing/multiindex/test_multiindex.py b/pandas/tests/indexing/multiindex/test_multiindex.py index 479d048d35fbd..322875adb841d 100644 --- a/pandas/tests/indexing/multiindex/test_multiindex.py +++ b/pandas/tests/indexing/multiindex/test_multiindex.py @@ -15,7 +15,6 @@ class TestMultiIndexBasic: def test_multiindex_perf_warn(self): - df = DataFrame( { "jim": [0, 0, 1, 1], @@ -47,7 +46,6 @@ def test_indexing_over_hashtable_size_cutoff(self): _index._SIZE_CUTOFF = old_cutoff def test_multi_nan_indexing(self): - # GH 3588 df = DataFrame( { @@ -70,6 +68,26 @@ def test_multi_nan_indexing(self): ) tm.assert_frame_equal(result, expected) + def test_exclusive_nat_column_indexing(self): + # GH 38025 + # test multi indexing when one column exclusively contains NaT values + df = DataFrame( + { + "a": [pd.NaT, pd.NaT, pd.NaT, pd.NaT], + "b": ["C1", "C2", "C3", "C4"], + "c": [10, 15, np.nan, 20], + } + ) + df = df.set_index(["a", "b"]) + expected = DataFrame( + { + "a": [pd.NaT, pd.NaT, pd.NaT, pd.NaT], + "b": ["C1", "C2", "C3", "C4"], + "c": [10, 15, np.nan, 20], + } + ) + tm.assert_equal(df.values, expected.values) + def test_nested_tuples_duplicates(self): # GH#30892 From 4646b64ac9e6af0b2631efa22d7f7f6c68b58348 Mon Sep 17 00:00:00 2001 From: ali Date: Sat, 25 Sep 2021 01:38:47 +0330 Subject: [PATCH 2/4] TST: fixed the test's problem --- pandas/tests/indexing/multiindex/test_multiindex.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/indexing/multiindex/test_multiindex.py b/pandas/tests/indexing/multiindex/test_multiindex.py index 322875adb841d..2904a139d0eae 100644 --- a/pandas/tests/indexing/multiindex/test_multiindex.py +++ b/pandas/tests/indexing/multiindex/test_multiindex.py @@ -78,7 +78,7 @@ def test_exclusive_nat_column_indexing(self): "c": [10, 15, np.nan, 20], } ) - df = df.set_index(["a", "b"]) + df = df.set_index(["a", "b"], drop=False) expected = DataFrame( { "a": [pd.NaT, pd.NaT, pd.NaT, pd.NaT], From 83d46f1e94183bfbc439b9b80f98a33fdbdda224 Mon Sep 17 00:00:00 2001 From: ali Date: Sat, 25 Sep 2021 12:05:10 +0330 Subject: [PATCH 3/4] TST: Code review --- pandas/tests/indexing/multiindex/test_multiindex.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pandas/tests/indexing/multiindex/test_multiindex.py b/pandas/tests/indexing/multiindex/test_multiindex.py index 2904a139d0eae..69fd67f1868e5 100644 --- a/pandas/tests/indexing/multiindex/test_multiindex.py +++ b/pandas/tests/indexing/multiindex/test_multiindex.py @@ -78,15 +78,20 @@ def test_exclusive_nat_column_indexing(self): "c": [10, 15, np.nan, 20], } ) - df = df.set_index(["a", "b"], drop=False) + df = df.set_index(["a", "b"]) expected = DataFrame( { "a": [pd.NaT, pd.NaT, pd.NaT, pd.NaT], "b": ["C1", "C2", "C3", "C4"], "c": [10, 15, np.nan, 20], - } + }, + index=[ + Index([pd.NaT, pd.NaT, pd.NaT, pd.NaT], name="a"), + Index(["C1", "C2", "C3", "C4"], name="b"), + ], ) - tm.assert_equal(df.values, expected.values) + expected = expected.drop(columns=["a", "b"]) + tm.assert_frame_equal(df, expected) def test_nested_tuples_duplicates(self): # GH#30892 From 55c81d2cc8544b94728c54ed45582353f58d6d6d Mon Sep 17 00:00:00 2001 From: ali Date: Sat, 25 Sep 2021 18:34:41 +0330 Subject: [PATCH 4/4] TST: Code review --- pandas/tests/indexing/multiindex/test_multiindex.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/pandas/tests/indexing/multiindex/test_multiindex.py b/pandas/tests/indexing/multiindex/test_multiindex.py index 69fd67f1868e5..9fa873a212cbd 100644 --- a/pandas/tests/indexing/multiindex/test_multiindex.py +++ b/pandas/tests/indexing/multiindex/test_multiindex.py @@ -81,8 +81,6 @@ def test_exclusive_nat_column_indexing(self): df = df.set_index(["a", "b"]) expected = DataFrame( { - "a": [pd.NaT, pd.NaT, pd.NaT, pd.NaT], - "b": ["C1", "C2", "C3", "C4"], "c": [10, 15, np.nan, 20], }, index=[ @@ -90,7 +88,6 @@ def test_exclusive_nat_column_indexing(self): Index(["C1", "C2", "C3", "C4"], name="b"), ], ) - expected = expected.drop(columns=["a", "b"]) tm.assert_frame_equal(df, expected) def test_nested_tuples_duplicates(self):