Skip to content

Commit 0a5fc21

Browse files
committed
BUG: Fix boolean column indexing (#61980)
1 parent 4f1551c commit 0a5fc21

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

pandas/core/frame.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4000,10 +4000,12 @@ def __getitem__(self, key):
40004000
and len(key) > 0
40014001
and any(isinstance(k, bool) for k in key)
40024002
and all(isinstance(k, (bool, str)) for k in key)
4003-
and not (len(key) == len((self.index) and all(isinstance(k, bool) for k in key)))
4004-
):
4005-
return self.reindex_columns(key)
4006-
4003+
and not (
4004+
len(key) == len(self.index) and all(isinstance(k, bool) for k in key)
4005+
)
4006+
):
4007+
return self.reindex_columns(key)
4008+
40074009
if is_hashable(key) and not is_iterator(key) and not isinstance(key, slice):
40084010
# is_iterator to exclude generator e.g. test_getitem_listlike
40094011
# As of Python 3.12, slice is hashable which breaks MultiIndex (GH#57500)

pandas/tests/frame/indexing/test_getitem.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,11 @@ def test_getitem_list_duplicates(self):
101101
expected = df.iloc[:, 2:]
102102
tm.assert_frame_equal(result, expected)
103103

104-
def test_getitem_bool_column_name(self):
105-
# GH#61980
106-
data = {"A": [1, 2, 3], "B": [4, 5, 6], True: [7, 8, 9]}
107-
df = DataFrame(data)
104+
def test_getitem_single_bool_column(self):
105+
# GH#61980
106+
df = DataFrame({True: [10, 20, 30]})
108107
result = df[[True]]
109-
expected = DataFrame({True: [7, 8, 9]})
108+
expected = DataFrame({True: [10, 20, 30]})
110109
tm.assert_frame_equal(result, expected)
111110

112111
def test_getitem_dupe_cols(self):

0 commit comments

Comments
 (0)