@@ -1284,40 +1284,43 @@ def set_names(self, names, level=None, inplace=False):
1284
1284
1285
1285
Parameters
1286
1286
----------
1287
- names : int, str, list-like, optional
1287
+ names : label or list of labels
1288
1288
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.
1292
1292
inplace : boolean, default False
1293
1293
Modifies the object directly, instead of creating a new Index or
1294
1294
MultiIndex.
1295
1295
1296
1296
Returns
1297
1297
-------
1298
- renamed : Index, MultiIndex or None
1298
+ Index
1299
1299
The same type as the caller or None if inplace is True.
1300
1300
1301
- See also
1301
+ See Also
1302
1302
--------
1303
- Index.rename : Able to set new names without level
1303
+ Index.rename : Able to set new names without level.
1304
1304
1305
1305
Examples
1306
1306
--------
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')
1309
1312
1310
1313
>>> idx = pd.MultiIndex.from_tuples([(1, 'one'), (1, 'two'),
1311
1314
... (2, 'one'), (2, 'two')],
1312
- ... names=['foo ', 'bar '])
1313
- >>> idx.set_names(['baz ', 'quz '])
1315
+ ... names=['year ', 'company '])
1316
+ >>> idx.set_names(['term ', 'corporation '])
1314
1317
MultiIndex(levels=[[1, 2], ['one', 'two']],
1315
1318
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 )
1318
1321
MultiIndex(levels=[[1, 2], ['one', 'two']],
1319
1322
labels=[[0, 0, 1, 1], [0, 1, 0, 1]],
1320
- names=['baz ', 'bar '])
1323
+ names=['year ', 'association '])
1321
1324
"""
1322
1325
1323
1326
from .multi import MultiIndex
@@ -1326,7 +1329,7 @@ def set_names(self, names, level=None, inplace=False):
1326
1329
1327
1330
if level is not None and not is_list_like (level ) and is_list_like (
1328
1331
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 ."
1330
1333
raise TypeError (msg )
1331
1334
1332
1335
if not is_list_like (names ) and level is None and self .nlevels > 1 :
@@ -1354,37 +1357,37 @@ def rename(self, name, inplace=False):
1354
1357
1355
1358
Parameters
1356
1359
----------
1357
- name : int, str, list-like, optional
1360
+ name : label or list of labels
1358
1361
Name(s) to set.
1359
1362
inplace : boolean, default False
1360
1363
Modifies the object directly, instead of creating a new Index or
1361
1364
MultiIndex.
1362
1365
1363
1366
Returns
1364
1367
-------
1365
- renamed : Index, MultiIndex or None
1368
+ Index
1366
1369
The same type as the caller or None if inplace is True.
1367
1370
1368
- See also
1371
+ See Also
1369
1372
--------
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.
1371
1374
1372
1375
Examples
1373
1376
--------
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 ')
1377
1380
1378
1381
>>> idx = pd.MultiIndex.from_tuples([(1, 'one'), (1, 'two'),
1379
1382
... (2, 'one'), (2, 'two')],
1380
- ... names=['foo ', 'bar '])
1381
- >>> idx.rename(['bar ', None ])
1383
+ ... names=['year ', 'company '])
1384
+ >>> idx.rename(['term ', 'corporation' ])
1382
1385
MultiIndex(levels=[[1, 2], ['one', 'two']],
1383
1386
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' )
1386
1389
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` .
1388
1391
"""
1389
1392
return self .set_names ([name ], inplace = inplace )
1390
1393
0 commit comments