From 7a7e6ca33669bfd32e9ffdc387a4ed1c71eaa606 Mon Sep 17 00:00:00 2001 From: Hung-Yi Wu Date: Sun, 27 Dec 2020 18:51:52 +0800 Subject: [PATCH 1/8] add quick test, found issue, asked on github --- pandas/tests/indexing/test_loc.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pandas/tests/indexing/test_loc.py b/pandas/tests/indexing/test_loc.py index 68f12a939e061..ef91f0a03093c 100644 --- a/pandas/tests/indexing/test_loc.py +++ b/pandas/tests/indexing/test_loc.py @@ -1644,6 +1644,12 @@ def test_loc_getitem_slice_labels_int_in_object_index(self, frame_or_series, val expected = frame_or_series(range(4), index=[value, "first", 2, "third"]) tm.assert_equal(result, expected) + def test_loc_getitem_slice_columns_mixed_dtype(self): + df1 = pd.DataFrame({'test':1, 1:2, 2:3}, index=[0]) + df2 = pd.DataFrame({1:2, 2:3}, index=[0]) + breakpoint() + tm.assert_equal(df1.loc[:, 1:], df2) + class TestLocBooleanMask: def test_loc_setitem_bool_mask_timedeltaindex(self): From 71ad8baa65cb5cf4609794b82e8062ac78c07676 Mon Sep 17 00:00:00 2001 From: Hung-Yi Wu Date: Sun, 27 Dec 2020 19:02:37 +0800 Subject: [PATCH 2/8] fix dtype --- pandas/tests/indexing/test_loc.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pandas/tests/indexing/test_loc.py b/pandas/tests/indexing/test_loc.py index ef91f0a03093c..517f9b5d7da69 100644 --- a/pandas/tests/indexing/test_loc.py +++ b/pandas/tests/indexing/test_loc.py @@ -1645,10 +1645,10 @@ def test_loc_getitem_slice_labels_int_in_object_index(self, frame_or_series, val tm.assert_equal(result, expected) def test_loc_getitem_slice_columns_mixed_dtype(self): - df1 = pd.DataFrame({'test':1, 1:2, 2:3}, index=[0]) - df2 = pd.DataFrame({1:2, 2:3}, index=[0]) - breakpoint() - tm.assert_equal(df1.loc[:, 1:], df2) + # GH: 20975 + df = pd.DataFrame({'test':1, 1:2, 2:3}, index=[0]) + expected = pd.DataFrame(data=[[2, 3]], index=[0], columns=Index([1, 2], dtype=object)) + tm.assert_equal(df.loc[:, 1:], expected) class TestLocBooleanMask: From 19787b372645406888b2ff49a05a8ce7e4d55a5a Mon Sep 17 00:00:00 2001 From: Hung-Yi Wu Date: Sun, 27 Dec 2020 19:15:27 +0800 Subject: [PATCH 3/8] fix format --- pandas/tests/indexing/test_loc.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pandas/tests/indexing/test_loc.py b/pandas/tests/indexing/test_loc.py index 517f9b5d7da69..fb0231480e41b 100644 --- a/pandas/tests/indexing/test_loc.py +++ b/pandas/tests/indexing/test_loc.py @@ -1646,8 +1646,9 @@ def test_loc_getitem_slice_labels_int_in_object_index(self, frame_or_series, val def test_loc_getitem_slice_columns_mixed_dtype(self): # GH: 20975 - df = pd.DataFrame({'test':1, 1:2, 2:3}, index=[0]) - expected = pd.DataFrame(data=[[2, 3]], index=[0], columns=Index([1, 2], dtype=object)) + df = pd.DataFrame({'test': 1, 1: 2, 2: 3}, index=[0]) + expected = pd.DataFrame(data=[[2, 3]], index=[0], columns=Index([1, 2], + dtype=object)) tm.assert_equal(df.loc[:, 1:], expected) From 22b731fa2f016eb8ebb0449099042884a6e400de Mon Sep 17 00:00:00 2001 From: Hung-Yi Wu Date: Sun, 27 Dec 2020 19:16:45 +0800 Subject: [PATCH 4/8] fix indent --- pandas/tests/indexing/test_loc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/indexing/test_loc.py b/pandas/tests/indexing/test_loc.py index fb0231480e41b..24fbf55458d94 100644 --- a/pandas/tests/indexing/test_loc.py +++ b/pandas/tests/indexing/test_loc.py @@ -1648,7 +1648,7 @@ def test_loc_getitem_slice_columns_mixed_dtype(self): # GH: 20975 df = pd.DataFrame({'test': 1, 1: 2, 2: 3}, index=[0]) expected = pd.DataFrame(data=[[2, 3]], index=[0], columns=Index([1, 2], - dtype=object)) + dtype=object)) tm.assert_equal(df.loc[:, 1:], expected) From f08ebfa9a25cfea18aee8a4d4a530302d67cc86b Mon Sep 17 00:00:00 2001 From: Hung-Yi Wu Date: Sun, 27 Dec 2020 11:27:43 +0000 Subject: [PATCH 5/8] fix namespace --- pandas/tests/indexing/test_loc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/tests/indexing/test_loc.py b/pandas/tests/indexing/test_loc.py index 24fbf55458d94..de48af0fcd219 100644 --- a/pandas/tests/indexing/test_loc.py +++ b/pandas/tests/indexing/test_loc.py @@ -1646,8 +1646,8 @@ def test_loc_getitem_slice_labels_int_in_object_index(self, frame_or_series, val def test_loc_getitem_slice_columns_mixed_dtype(self): # GH: 20975 - df = pd.DataFrame({'test': 1, 1: 2, 2: 3}, index=[0]) - expected = pd.DataFrame(data=[[2, 3]], index=[0], columns=Index([1, 2], + df = DataFrame({'test': 1, 1: 2, 2: 3}, index=[0]) + expected = DataFrame(data=[[2, 3]], index=[0], columns=Index([1, 2], dtype=object)) tm.assert_equal(df.loc[:, 1:], expected) From 7e556b49b918bd91f8ca3a2f0943667cd0bb6379 Mon Sep 17 00:00:00 2001 From: Hung-Yi Wu Date: Sun, 27 Dec 2020 11:39:05 +0000 Subject: [PATCH 6/8] make namespace consistent --- pandas/tests/indexing/test_loc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/indexing/test_loc.py b/pandas/tests/indexing/test_loc.py index de48af0fcd219..1ca272e4a089e 100644 --- a/pandas/tests/indexing/test_loc.py +++ b/pandas/tests/indexing/test_loc.py @@ -1647,7 +1647,7 @@ def test_loc_getitem_slice_labels_int_in_object_index(self, frame_or_series, val def test_loc_getitem_slice_columns_mixed_dtype(self): # GH: 20975 df = DataFrame({'test': 1, 1: 2, 2: 3}, index=[0]) - expected = DataFrame(data=[[2, 3]], index=[0], columns=Index([1, 2], + expected = DataFrame(data=[[2, 3]], index=[0], columns=pd.Index([1, 2], dtype=object)) tm.assert_equal(df.loc[:, 1:], expected) From c329c5cd5685d082839e1ecb27ecb1e7660edd38 Mon Sep 17 00:00:00 2001 From: Hung-Yi Wu Date: Sun, 27 Dec 2020 20:29:04 +0800 Subject: [PATCH 7/8] passed black --- pandas/tests/indexing/test_loc.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pandas/tests/indexing/test_loc.py b/pandas/tests/indexing/test_loc.py index 1ca272e4a089e..e5ad574101663 100644 --- a/pandas/tests/indexing/test_loc.py +++ b/pandas/tests/indexing/test_loc.py @@ -1646,9 +1646,10 @@ def test_loc_getitem_slice_labels_int_in_object_index(self, frame_or_series, val def test_loc_getitem_slice_columns_mixed_dtype(self): # GH: 20975 - df = DataFrame({'test': 1, 1: 2, 2: 3}, index=[0]) - expected = DataFrame(data=[[2, 3]], index=[0], columns=pd.Index([1, 2], - dtype=object)) + df = DataFrame({"test": 1, 1: 2, 2: 3}, index=[0]) + expected = DataFrame( + data=[[2, 3]], index=[0], columns=pd.Index([1, 2], dtype=object) + ) tm.assert_equal(df.loc[:, 1:], expected) From 253e377de514b7a4311f2a2292d5b6f1eb965271 Mon Sep 17 00:00:00 2001 From: Hung-Yi Wu Date: Sun, 27 Dec 2020 13:43:03 +0000 Subject: [PATCH 8/8] more specific function --- pandas/tests/indexing/test_loc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/indexing/test_loc.py b/pandas/tests/indexing/test_loc.py index e5ad574101663..89315b16937b1 100644 --- a/pandas/tests/indexing/test_loc.py +++ b/pandas/tests/indexing/test_loc.py @@ -1650,7 +1650,7 @@ def test_loc_getitem_slice_columns_mixed_dtype(self): expected = DataFrame( data=[[2, 3]], index=[0], columns=pd.Index([1, 2], dtype=object) ) - tm.assert_equal(df.loc[:, 1:], expected) + tm.assert_frame_equal(df.loc[:, 1:], expected) class TestLocBooleanMask: