Skip to content

Commit 27555e7

Browse files
committed
BUG: Bug in multi-index slicing with incomplete indexers (GH7399)
1 parent a25ff6e commit 27555e7

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

doc/source/v0.14.1.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ Bug Fixes
160160

161161

162162

163-
163+
- Bug in multi-index slicing with incomplete indexers (:issue:`7399`)
164164

165165

166166

pandas/core/index.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3526,8 +3526,8 @@ def _get_level_indexer(self, key, level=0):
35263526
# handle a slice, returnig a slice if we can
35273527
# otherwise a boolean indexer
35283528

3529-
start = level_index.get_loc(key.start)
3530-
stop = level_index.get_loc(key.stop)
3529+
start = level_index.get_loc(key.start or 0)
3530+
stop = level_index.get_loc(key.stop or len(level_index)-1)
35313531
step = key.step
35323532

35333533
if level > 0 or self.lexsort_depth == 0:

pandas/tests/test_indexing.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1325,6 +1325,18 @@ def test_loc_multiindex(self):
13251325
result = df.loc[[1,2]]
13261326
assert_frame_equal(result, expected)
13271327

1328+
# GH 7399
1329+
# incomplete indexers
1330+
s = pd.Series(np.arange(15,dtype='int64'),MultiIndex.from_product([range(5), ['a', 'b', 'c']]))
1331+
expected = s.loc[:, 'a':'c']
1332+
result = s.loc[0:4, 'a':'c']
1333+
assert_series_equal(result, expected)
1334+
1335+
result = s.loc[:4, 'a':'c']
1336+
assert_series_equal(result, expected)
1337+
1338+
result = s.loc[0:, 'a':'c']
1339+
assert_series_equal(result, expected)
13281340

13291341
def test_series_getitem_multiindex(self):
13301342

0 commit comments

Comments
 (0)