@@ -893,13 +893,31 @@ def set_levels(self, levels, level=None, inplace=None, verify_integrity=True):
893
893
def nlevels (self ) -> int :
894
894
"""
895
895
Integer number of levels in this MultiIndex.
896
+
897
+ Examples
898
+ --------
899
+ >>> mi = pd.MultiIndex.from_arrays([['a'], ['b'], ['c']])
900
+ >>> mi
901
+ MultiIndex([('a', 'b', 'c')],
902
+ )
903
+ >>> mi.nlevels
904
+ 3
896
905
"""
897
906
return len (self ._levels )
898
907
899
908
@property
900
909
def levshape (self ):
901
910
"""
902
911
A tuple with the length of each level.
912
+
913
+ Examples
914
+ --------
915
+ >>> mi = pd.MultiIndex.from_arrays([['a'], ['b'], ['c']])
916
+ >>> mi
917
+ MultiIndex([('a', 'b', 'c')],
918
+ )
919
+ >>> mi.levshape
920
+ (1, 1, 1)
903
921
"""
904
922
return tuple (len (x ) for x in self .levels )
905
923
@@ -1436,7 +1454,22 @@ def _set_names(self, names, level=None, validate=True):
1436
1454
self ._reset_cache ()
1437
1455
1438
1456
names = property (
1439
- fset = _set_names , fget = _get_names , doc = """\n Names of levels in MultiIndex.\n """
1457
+ fset = _set_names ,
1458
+ fget = _get_names ,
1459
+ doc = """
1460
+ Names of levels in MultiIndex.
1461
+
1462
+ Examples
1463
+ --------
1464
+ >>> mi = pd.MultiIndex.from_arrays(
1465
+ ... [[1, 2], [3, 4], [5, 6]], names=['x', 'y', 'z'])
1466
+ >>> mi
1467
+ MultiIndex([(1, 3, 5),
1468
+ (2, 4, 6)],
1469
+ names=['x', 'y', 'z'])
1470
+ >>> mi.names
1471
+ FrozenList(['x', 'y', 'z'])
1472
+ """ ,
1440
1473
)
1441
1474
1442
1475
# --------------------------------------------------------------------
@@ -1680,6 +1713,32 @@ def to_frame(self, index=True, name=None):
1680
1713
--------
1681
1714
DataFrame : Two-dimensional, size-mutable, potentially heterogeneous
1682
1715
tabular data.
1716
+
1717
+ Examples
1718
+ --------
1719
+ >>> mi = pd.MultiIndex.from_arrays([['a', 'b'], ['c', 'd']])
1720
+ >>> mi
1721
+ MultiIndex([('a', 'c'),
1722
+ ('b', 'd')],
1723
+ )
1724
+
1725
+ >>> df = mi.to_frame()
1726
+ >>> df
1727
+ 0 1
1728
+ a c a c
1729
+ b d b d
1730
+
1731
+ >>> df = mi.to_frame(index=False)
1732
+ >>> df
1733
+ 0 1
1734
+ 0 a c
1735
+ 1 b d
1736
+
1737
+ >>> df = mi.to_frame(name=['x', 'y'])
1738
+ >>> df
1739
+ x y
1740
+ a c a c
1741
+ b d b d
1683
1742
"""
1684
1743
from pandas import DataFrame
1685
1744
@@ -2217,6 +2276,24 @@ def reorder_levels(self, order):
2217
2276
Returns
2218
2277
-------
2219
2278
MultiIndex
2279
+
2280
+ Examples
2281
+ --------
2282
+ >>> mi = pd.MultiIndex.from_arrays([[1, 2], [3, 4]], names=['x', 'y'])
2283
+ >>> mi
2284
+ MultiIndex([(1, 3),
2285
+ (2, 4)],
2286
+ names=['x', 'y'])
2287
+
2288
+ >>> mi.reorder_levels(order=[1, 0])
2289
+ MultiIndex([(3, 1),
2290
+ (4, 2)],
2291
+ names=['y', 'x'])
2292
+
2293
+ >>> mi.reorder_levels(order=['y', 'x'])
2294
+ MultiIndex([(3, 1),
2295
+ (4, 2)],
2296
+ names=['y', 'x'])
2220
2297
"""
2221
2298
order = [self ._get_level_number (i ) for i in order ]
2222
2299
if len (order ) != self .nlevels :
@@ -2275,6 +2352,34 @@ def sortlevel(self, level=0, ascending=True, sort_remaining=True):
2275
2352
Resulting index.
2276
2353
indexer : np.ndarray
2277
2354
Indices of output values in original index.
2355
+
2356
+ Examples
2357
+ --------
2358
+ >>> mi = pd.MultiIndex.from_arrays([[0, 0], [2, 1]])
2359
+ >>> mi
2360
+ MultiIndex([(0, 2),
2361
+ (0, 1)],
2362
+ )
2363
+
2364
+ >>> mi.sortlevel()
2365
+ (MultiIndex([(0, 1),
2366
+ (0, 2)],
2367
+ ), array([1, 0]))
2368
+
2369
+ >>> mi.sortlevel(sort_remaining=False)
2370
+ (MultiIndex([(0, 2),
2371
+ (0, 1)],
2372
+ ), array([0, 1]))
2373
+
2374
+ >>> mi.sortlevel(1)
2375
+ (MultiIndex([(0, 1),
2376
+ (0, 2)],
2377
+ ), array([1, 0]))
2378
+
2379
+ >>> mi.sortlevel(1, ascending=False)
2380
+ (MultiIndex([(0, 2),
2381
+ (0, 1)],
2382
+ ), array([0, 1]))
2278
2383
"""
2279
2384
if isinstance (level , (str , int )):
2280
2385
level = [level ]
0 commit comments