Skip to content

Commit 5e55d17

Browse files
committed
BUG: close #812, fix index name dropping in _ensure_index
1 parent 63b9ab9 commit 5e55d17

File tree

3 files changed

+9
-10
lines changed

3 files changed

+9
-10
lines changed

pandas/core/frame.py

-4
Original file line numberDiff line numberDiff line change
@@ -1820,11 +1820,9 @@ def reindex(self, index=None, columns=None, method=None, level=None,
18201820

18211821
if index is not None:
18221822
frame = frame._reindex_index(index, method, copy, level)
1823-
frame.index.name = self.index.name
18241823

18251824
if columns is not None:
18261825
frame = frame._reindex_columns(columns, copy, level)
1827-
frame.columns.name = self.columns.name
18281826

18291827
return frame
18301828

@@ -1867,11 +1865,9 @@ def reindex_axis(self, labels, axis=0, method=None, level=None, copy=True):
18671865
self._consolidate_inplace()
18681866
if axis == 0:
18691867
df = self._reindex_index(labels, method, copy, level)
1870-
df.index.name = self.index.name
18711868
return df
18721869
elif axis == 1:
18731870
df = self._reindex_columns(labels, copy, level)
1874-
df.columns.name = self.columns.name
18751871
return df
18761872
else: # pragma: no cover
18771873
raise ValueError('Must specify axis=0 or 1')

pandas/core/index.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -2137,14 +2137,14 @@ def _sparsify(label_list):
21372137
def _ensure_index(index_like):
21382138
if isinstance(index_like, Index):
21392139
return index_like
2140+
if hasattr(index_like, 'name'):
2141+
return Index(index_like, name=index_like.name)
21402142
return Index(index_like)
21412143

2142-
21432144
def _validate_join_method(method):
21442145
if method not in ['left', 'right', 'inner', 'outer']:
21452146
raise Exception('do not recognize join method %s' % method)
21462147

2147-
21482148
# TODO: handle index names!
21492149
def _get_combined_index(indexes, intersect=False):
21502150
indexes = _get_distinct_indexes(indexes)

pandas/tests/test_frame.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -3103,14 +3103,17 @@ def test_reindex(self):
31033103
def test_reindex_name_remains(self):
31043104
s = Series(random.rand(10))
31053105
df = DataFrame(s, index=np.arange(len(s)))
3106-
df.index.name = 'iname'
3107-
df = df.reindex(s.index)
3106+
i = Series(np.arange(10), name='iname')
3107+
df = df.reindex(i)
31083108
self.assert_(df.index.name == 'iname')
31093109

3110+
df = df.reindex(Index(np.arange(10), name='tmpname'))
3111+
self.assert_(df.index.name == 'tmpname')
3112+
31103113
s = Series(random.rand(10))
31113114
df = DataFrame(s.T, index=np.arange(len(s)))
3112-
df.columns.name = 'iname'
3113-
df = df.reindex(columns=s.index)
3115+
i = Series(np.arange(10), name='iname')
3116+
df = df.reindex(columns=i)
31143117
self.assert_(df.columns.name == 'iname')
31153118

31163119
def test_reindex_int(self):

0 commit comments

Comments
 (0)