Skip to content

Commit 836ecab

Browse files
committed
BUG: preserve index names in MultiIndex.drop, close #1513
1 parent 44a8295 commit 836ecab

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

pandas/core/index.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2295,7 +2295,8 @@ def delete(self, loc):
22952295
new_index : MultiIndex
22962296
"""
22972297
new_labels = [np.delete(lab, loc) for lab in self.labels]
2298-
return MultiIndex(levels=self.levels, labels=new_labels)
2298+
return MultiIndex(levels=self.levels, labels=new_labels,
2299+
names=self.names)
22992300

23002301
get_major_bounds = slice_locs
23012302

pandas/tests/test_multilevel.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1355,6 +1355,16 @@ def test_drop_level(self):
13551355
expected = self.frame.ix[[0, 2, 3, 6, 7, 9]].T
13561356
assert_frame_equal(result, expected)
13571357

1358+
def test_drop_preserve_names(self):
1359+
index = MultiIndex.from_arrays([[0, 0, 0, 1, 1, 1],
1360+
[1, 2, 3, 1, 2, 3]],
1361+
names=['one', 'two'])
1362+
1363+
df = DataFrame(np.random.randn(6, 3), index=index)
1364+
1365+
result = df.drop([(0, 2)])
1366+
self.assert_(result.index.names == ['one', 'two'])
1367+
13581368
def test_unicode_repr_issues(self):
13591369
levels = [Index([u'a/\u03c3', u'b/\u03c3',u'c/\u03c3']),
13601370
Index([0, 1])]

0 commit comments

Comments
 (0)