Skip to content

Commit 9e70bbe

Browse files
committed
Fix details
1 parent b86d884 commit 9e70bbe

File tree

1 file changed

+34
-28
lines changed

1 file changed

+34
-28
lines changed

pandas/core/indexes/base.py

+34-28
Original file line numberDiff line numberDiff line change
@@ -1278,31 +1278,37 @@ def _set_names(self, values, level=None):
12781278

12791279
def set_names(self, names, level=None, inplace=False):
12801280
"""
1281-
Set new names on index. Defaults to returning new index.
1281+
Alter Index or MultiIndex name or level.
1282+
1283+
Able to set new names partially and by level.
12821284
12831285
Parameters
12841286
----------
1285-
names : str or sequence
1287+
names : int, str, list-like, optional
12861288
Name(s) to set.
1287-
level : int, level name, or sequence of int/level names (default None)
1288-
If the index is a MultiIndex (hierarchical), level(s) to set (None
1289-
for all levels). Otherwise level must be None.
1290-
inplace : bool
1291-
If True, mutates in place.
1289+
level : int, str, list-like, optional, default None
1290+
If the index is a MultiIndex(hierarchical), level(s) to set (None
1291+
for all levels). Otherwise level must be None.
1292+
inplace : boolean, default False
1293+
Modifies the object directly, instead of creating a new Index or
1294+
MultiIndex.
12921295
12931296
Returns
12941297
-------
1295-
new index (of same type and class...etc) [if inplace, returns None]
1298+
renamed : Index, MultiIndex or None
1299+
The same type as the caller or None if inplace is True.
1300+
1301+
See also
1302+
--------
1303+
Index.rename : Able to set new names without level
12961304
12971305
Examples
12981306
--------
12991307
>>> pd.Index([1, 2, 3, 4]).set_names('foo')
13001308
Int64Index([1, 2, 3, 4], dtype='int64', name='foo')
1301-
>>> pd.Index([1, 2, 3, 4]).set_names(['foo'])
1302-
Int64Index([1, 2, 3, 4], dtype='int64', name='foo')
13031309
1304-
>>> idx = pd.MultiIndex.from_tuples([(1, u'one'), (1, u'two'),
1305-
... (2, u'one'), (2, u'two')],
1310+
>>> idx = pd.MultiIndex.from_tuples([(1, 'one'), (1, 'two'),
1311+
... (2, 'one'), (2, 'two')],
13061312
... names=['foo', 'bar'])
13071313
>>> idx.set_names(['baz', 'quz'])
13081314
MultiIndex(levels=[[1, 2], ['one', 'two']],
@@ -1312,10 +1318,6 @@ def set_names(self, names, level=None, inplace=False):
13121318
MultiIndex(levels=[[1, 2], ['one', 'two']],
13131319
labels=[[0, 0, 1, 1], [0, 1, 0, 1]],
13141320
names=['baz', 'bar'])
1315-
1316-
See also
1317-
--------
1318-
rename : able to set new names without level
13191321
"""
13201322

13211323
from .multi import MultiIndex
@@ -1324,7 +1326,8 @@ def set_names(self, names, level=None, inplace=False):
13241326

13251327
if level is not None and not is_list_like(level) and is_list_like(
13261328
names):
1327-
raise TypeError("Names must be a string")
1329+
msg = "Length of names must match number of levels in MultiIndex."
1330+
raise TypeError(msg)
13281331

13291332
if not is_list_like(names) and level is None and self.nlevels > 1:
13301333
raise TypeError("Must pass list-like as `names`.")
@@ -1344,29 +1347,36 @@ def set_names(self, names, level=None, inplace=False):
13441347

13451348
def rename(self, name, inplace=False):
13461349
"""
1347-
Set new names on index. Defaults to returning new index.
1350+
Alter Index or MultiIndex name.
13481351
1352+
Able to set new names without level. Defaults to returning new index.
13491353
Length of names must match number of levels in MultiIndex.
13501354
13511355
Parameters
13521356
----------
1353-
name : str or list
1357+
name : int, str, list-like, optional
13541358
Name(s) to set.
1355-
inplace : bool
1356-
If True, mutates in place.
1359+
inplace : boolean, default False
1360+
Modifies the object directly, instead of creating a new Index or
1361+
MultiIndex.
13571362
13581363
Returns
13591364
-------
1360-
new index (of same type and class...etc) [if inplace, returns None]
1365+
renamed : Index, MultiIndex or None
1366+
The same type as the caller or None if inplace is True.
1367+
1368+
See also
1369+
--------
1370+
Index.set_names : Able to set new names partially and by level
13611371
13621372
Examples
13631373
--------
13641374
>>> idx = pd.Index([1, 2, 3, 4], name='foo')
13651375
>>> idx.rename('bar')
13661376
Int64Index([1, 2, 3, 4], dtype='int64', name='bar')
13671377
1368-
>>> idx = pd.MultiIndex.from_tuples([(1, u'one'), (1, u'two'),
1369-
... (2, u'one'), (2, u'two')],
1378+
>>> idx = pd.MultiIndex.from_tuples([(1, 'one'), (1, 'two'),
1379+
... (2, 'one'), (2, 'two')],
13701380
... names=['foo', 'bar'])
13711381
>>> idx.rename(['bar', None])
13721382
MultiIndex(levels=[[1, 2], ['one', 'two']],
@@ -1375,10 +1385,6 @@ def rename(self, name, inplace=False):
13751385
>>> idx.rename(['bar'])
13761386
Traceback (most recent call last):
13771387
ValueError: Length of names must match number of levels in MultiIndex.
1378-
1379-
See also
1380-
--------
1381-
set_names : able to set new names partially and by level
13821388
"""
13831389
return self.set_names([name], inplace=inplace)
13841390

0 commit comments

Comments
 (0)