Skip to content

Commit 2de2884

Browse files
kawochenjreback
authored andcommitted
BUG: GH12896 where extra elements are returned in MultiIndex slicing
closes #12896 Author: Ka Wo Chen <[email protected]> Closes #13117 from kawochen/BUG-FIX-12896 and squashes the following commits: 7d49346 [Ka Wo Chen] BUG: GH12896 where extra elements are returned in MultiIndex slicing
1 parent b385799 commit 2de2884

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

doc/source/whatsnew/v0.18.2.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ Bug Fixes
134134

135135

136136

137-
137+
- Bug in ``MultiIndex`` slicing where extra elements were returned when level is non-unique (:issue:`12896`)
138138

139139

140140

pandas/indexes/multi.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1761,7 +1761,8 @@ def convert_indexer(start, stop, step, indexer=indexer, labels=labels):
17611761

17621762
else:
17631763
m = np.zeros(len(labels), dtype=bool)
1764-
m[np.in1d(labels, r, assume_unique=True)] = True
1764+
m[np.in1d(labels, r,
1765+
assume_unique=Index(labels).is_unique)] = True
17651766

17661767
return m
17671768

pandas/tests/indexing/test_indexing.py

+12
Original file line numberDiff line numberDiff line change
@@ -2334,6 +2334,18 @@ def test_multiindex_slicers_non_unique(self):
23342334
self.assertFalse(result.index.is_unique)
23352335
assert_frame_equal(result, expected)
23362336

2337+
# GH12896
2338+
# numpy-implementation dependent bug
2339+
ints = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 12, 13, 14, 14, 16,
2340+
17, 18, 19, 200000, 200000]
2341+
n = len(ints)
2342+
idx = MultiIndex.from_arrays([['a'] * n, ints])
2343+
result = Series([1] * n, index=idx)
2344+
result = result.sort_index()
2345+
result = result.loc[(slice(None), slice(100000))]
2346+
expected = Series([1] * (n - 2), index=idx[:-2]).sort_index()
2347+
assert_series_equal(result, expected)
2348+
23372349
def test_multiindex_slicers_datetimelike(self):
23382350

23392351
# GH 7429

0 commit comments

Comments
 (0)