@@ -1284,40 +1284,43 @@ def set_names(self, names, level=None, inplace=False):
12841284
12851285 Parameters
12861286 ----------
1287- names : int, str, list-like, optional
1287+ names : label or list of labels
12881288 Name(s) to set.
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.
1289+ level : int, str or list of labels, optional
1290+ If the index is a MultiIndex, level(s) to set (None for all
1291+ levels). Otherwise level must be None.
12921292 inplace : boolean, default False
12931293 Modifies the object directly, instead of creating a new Index or
12941294 MultiIndex.
12951295
12961296 Returns
12971297 -------
1298- renamed : Index, MultiIndex or None
1298+ Index
12991299 The same type as the caller or None if inplace is True.
13001300
1301- See also
1301+ See Also
13021302 --------
1303- Index.rename : Able to set new names without level
1303+ Index.rename : Able to set new names without level.
13041304
13051305 Examples
13061306 --------
1307- >>> pd.Index([1, 2, 3, 4]).set_names('foo')
1308- Int64Index([1, 2, 3, 4], dtype='int64', name='foo')
1307+ >>> idx = pd.Index([1, 2, 3, 4])
1308+ >>> idx
1309+ Int64Index([1, 2, 3, 4], dtype='int64')
1310+ >>> idx.set_names('quarter')
1311+ Int64Index([1, 2, 3, 4], dtype='int64', name='quarter')
13091312
13101313 >>> idx = pd.MultiIndex.from_tuples([(1, 'one'), (1, 'two'),
13111314 ... (2, 'one'), (2, 'two')],
1312- ... names=['foo ', 'bar '])
1313- >>> idx.set_names(['baz ', 'quz '])
1315+ ... names=['year ', 'company '])
1316+ >>> idx.set_names(['term ', 'corporation '])
13141317 MultiIndex(levels=[[1, 2], ['one', 'two']],
13151318 labels=[[0, 0, 1, 1], [0, 1, 0, 1]],
1316- names=['baz ', 'quz '])
1317- >>> idx.set_names('baz ', level=0 )
1319+ names=['term ', 'corporation '])
1320+ >>> idx.set_names('association ', level=1 )
13181321 MultiIndex(levels=[[1, 2], ['one', 'two']],
13191322 labels=[[0, 0, 1, 1], [0, 1, 0, 1]],
1320- names=['baz ', 'bar '])
1323+ names=['year ', 'association '])
13211324 """
13221325
13231326 from .multi import MultiIndex
@@ -1326,7 +1329,7 @@ def set_names(self, names, level=None, inplace=False):
13261329
13271330 if level is not None and not is_list_like (level ) and is_list_like (
13281331 names ):
1329- msg = "Length of names must match number of levels in MultiIndex ."
1332+ msg = "Names must be a string when one level is provided ."
13301333 raise TypeError (msg )
13311334
13321335 if not is_list_like (names ) and level is None and self .nlevels > 1 :
@@ -1354,37 +1357,37 @@ def rename(self, name, inplace=False):
13541357
13551358 Parameters
13561359 ----------
1357- name : int, str, list-like, optional
1360+ name : label or list of labels
13581361 Name(s) to set.
13591362 inplace : boolean, default False
13601363 Modifies the object directly, instead of creating a new Index or
13611364 MultiIndex.
13621365
13631366 Returns
13641367 -------
1365- renamed : Index, MultiIndex or None
1368+ Index
13661369 The same type as the caller or None if inplace is True.
13671370
1368- See also
1371+ See Also
13691372 --------
1370- Index.set_names : Able to set new names partially and by level
1373+ Index.set_names : Able to set new names partially and by level.
13711374
13721375 Examples
13731376 --------
1374- >>> idx = pd.Index([1, 2, 3, 4 ], name='foo ')
1375- >>> idx.rename('bar ')
1376- Int64Index([1, 2, 3, 4 ], dtype='int64 ', name='bar ')
1377+ >>> idx = pd.Index(['A', 'C', 'A', 'B' ], name='score ')
1378+ >>> idx.rename('grade ')
1379+ Index(['A', 'C', 'A', 'B' ], dtype='object ', name='grade ')
13771380
13781381 >>> idx = pd.MultiIndex.from_tuples([(1, 'one'), (1, 'two'),
13791382 ... (2, 'one'), (2, 'two')],
1380- ... names=['foo ', 'bar '])
1381- >>> idx.rename(['bar ', None ])
1383+ ... names=['year ', 'company '])
1384+ >>> idx.rename(['term ', 'corporation' ])
13821385 MultiIndex(levels=[[1, 2], ['one', 'two']],
13831386 labels=[[0, 0, 1, 1], [0, 1, 0, 1]],
1384- names=['bar ', None ])
1385- >>> idx.rename(['bar'] )
1387+ names=['term ', 'corporation' ])
1388+ >>> idx.rename('term' )
13861389 Traceback (most recent call last):
1387- ValueError: Length of names must match number of levels in MultiIndex .
1390+ TypeError: Must pass list-like as `names` .
13881391 """
13891392 return self .set_names ([name ], inplace = inplace )
13901393
0 commit comments