Skip to content

Commit 300610e

Browse files
committed
Merge pull request pandas-dev#6790 from jreback/slice
BUG: bug in taking all on a multi-index when only level 0 is specified (GH6788)
2 parents 97e87b8 + 890bef1 commit 300610e

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

pandas/core/indexing.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,6 +1040,10 @@ def _convert_to_indexer(self, obj, axis=0, is_setter=False):
10401040
level = 0
10411041
_, indexer = labels.reindex(objarr, level=level)
10421042

1043+
# take all
1044+
if indexer is None:
1045+
indexer = np.arange(len(labels))
1046+
10431047
check = labels.levels[0].get_indexer(objarr)
10441048
else:
10451049
level = None

pandas/tests/test_indexing.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1128,6 +1128,17 @@ def test_loc_multiindex(self):
11281128
xp = mi_int.ix[4]
11291129
assert_frame_equal(rs,xp)
11301130

1131+
# GH6788
1132+
# multi-index indexer is None (meaning take all)
1133+
attributes = ['Attribute' + str(i) for i in range(1)]
1134+
attribute_values = ['Value' + str(i) for i in range(5)]
1135+
1136+
index = MultiIndex.from_product([attributes,attribute_values])
1137+
df = 0.1 * np.random.randn(10, 1 * 5) + 0.5
1138+
df = DataFrame(df, columns=index)
1139+
result = df[attributes]
1140+
assert_frame_equal(result, df)
1141+
11311142
def test_series_getitem_multiindex(self):
11321143

11331144
# GH 6018

0 commit comments

Comments
 (0)