@@ -300,7 +300,7 @@ class MultiIndex(Index):
300
300
(1, 'blue'),
301
301
(2, 'red'),
302
302
(2, 'blue')],
303
- names=[ 'number', 'color'] )
303
+ names=( 'number', 'color') )
304
304
305
305
See further examples for how to construct a MultiIndex in the doc strings
306
306
of the mentioned helper methods.
@@ -393,16 +393,16 @@ def _validate_codes(self, level: list, code: list):
393
393
394
394
def _verify_integrity (
395
395
self ,
396
- codes : list | None = None ,
397
- levels : list | None = None ,
396
+ codes : tuple | None = None ,
397
+ levels : tuple | None = None ,
398
398
levels_to_verify : list [int ] | range | None = None ,
399
399
):
400
400
"""
401
401
Parameters
402
402
----------
403
- codes : optional list
403
+ codes : optional tuple
404
404
Codes to check for validity. Defaults to current codes.
405
- levels : optional list
405
+ levels : optional tuple
406
406
Levels to check for validity. Defaults to current levels.
407
407
levels_to_validate: optional list
408
408
Specifies the levels to verify.
@@ -509,7 +509,7 @@ def from_arrays(
509
509
(1, 'blue'),
510
510
(2, 'red'),
511
511
(2, 'blue')],
512
- names=[ 'number', 'color'] )
512
+ names=( 'number', 'color') )
513
513
"""
514
514
error_msg = "Input must be a list / sequence of array-likes."
515
515
if not is_list_like (arrays ):
@@ -581,7 +581,7 @@ def from_tuples(
581
581
(1, 'blue'),
582
582
(2, 'red'),
583
583
(2, 'blue')],
584
- names=[ 'number', 'color'] )
584
+ names=( 'number', 'color') )
585
585
"""
586
586
if not is_list_like (tuples ):
587
587
raise TypeError ("Input must be a list / sequence of tuple-likes." )
@@ -665,7 +665,7 @@ def from_product(
665
665
(1, 'purple'),
666
666
(2, 'green'),
667
667
(2, 'purple')],
668
- names=[ 'number', 'color'] )
668
+ names=( 'number', 'color') )
669
669
"""
670
670
from pandas .core .reshape .util import cartesian_product
671
671
@@ -733,7 +733,7 @@ def from_frame(
733
733
('HI', 'Precip'),
734
734
('NJ', 'Temp'),
735
735
('NJ', 'Precip')],
736
- names=[ 'a', 'b'] )
736
+ names=( 'a', 'b') )
737
737
738
738
Using explicit names, instead of the column names
739
739
@@ -742,7 +742,7 @@ def from_frame(
742
742
('HI', 'Precip'),
743
743
('NJ', 'Temp'),
744
744
('NJ', 'Precip')],
745
- names=[ 'state', 'observation'] )
745
+ names=( 'state', 'observation') )
746
746
"""
747
747
if not isinstance (df , ABCDataFrame ):
748
748
raise TypeError ("Input must be a DataFrame" )
@@ -934,7 +934,7 @@ def set_levels(
934
934
(2, 'two'),
935
935
(3, 'one'),
936
936
(3, 'two')],
937
- names=[ 'foo', 'bar'] )
937
+ names=( 'foo', 'bar') )
938
938
939
939
>>> idx.set_levels([['a', 'b', 'c'], [1, 2]])
940
940
MultiIndex([('a', 1),
@@ -943,23 +943,23 @@ def set_levels(
943
943
('b', 2),
944
944
('c', 1),
945
945
('c', 2)],
946
- names=[ 'foo', 'bar'] )
946
+ names=( 'foo', 'bar') )
947
947
>>> idx.set_levels(['a', 'b', 'c'], level=0)
948
948
MultiIndex([('a', 'one'),
949
949
('a', 'two'),
950
950
('b', 'one'),
951
951
('b', 'two'),
952
952
('c', 'one'),
953
953
('c', 'two')],
954
- names=[ 'foo', 'bar'] )
954
+ names=( 'foo', 'bar') )
955
955
>>> idx.set_levels(['a', 'b'], level='bar')
956
956
MultiIndex([(1, 'a'),
957
957
(1, 'b'),
958
958
(2, 'a'),
959
959
(2, 'b'),
960
960
(3, 'a'),
961
961
(3, 'b')],
962
- names=[ 'foo', 'bar'] )
962
+ names=( 'foo', 'bar') )
963
963
964
964
If any of the levels passed to ``set_levels()`` exceeds the
965
965
existing length, all of the values from that argument will
@@ -973,7 +973,7 @@ def set_levels(
973
973
('b', 2),
974
974
('c', 1),
975
975
('c', 2)],
976
- names=[ 'foo', 'bar'] )
976
+ names=( 'foo', 'bar') )
977
977
>>> idx.set_levels([['a', 'b', 'c'], [1, 2, 3, 4]], level=[0, 1]).levels
978
978
(['a', 'b', 'c'], [1, 2, 3, 4]])
979
979
"""
@@ -1520,7 +1520,7 @@ def _set_names(self, names, *, level=None, validate: bool = True):
1520
1520
>>> mi
1521
1521
MultiIndex([(1, 3, 5),
1522
1522
(2, 4, 6)],
1523
- names=[ 'x', 'y', 'z'] )
1523
+ names=( 'x', 'y', 'z') )
1524
1524
>>> mi.names
1525
1525
('x', 'y', 'z')
1526
1526
""" ,
@@ -1990,7 +1990,7 @@ def remove_unused_levels(self) -> MultiIndex:
1990
1990
1991
1991
>>> mi2 = mi[2:].remove_unused_levels()
1992
1992
>>> mi2.levels
1993
- ([1], ['a', 'b']] )
1993
+ (Index( [1], dtype='int64'), Index( ['a', 'b'], dtype='object') )
1994
1994
"""
1995
1995
new_levels = []
1996
1996
new_codes = []
@@ -2427,17 +2427,17 @@ def reorder_levels(self, order) -> MultiIndex:
2427
2427
>>> mi
2428
2428
MultiIndex([(1, 3),
2429
2429
(2, 4)],
2430
- names=[ 'x', 'y'] )
2430
+ names=( 'x', 'y') )
2431
2431
2432
2432
>>> mi.reorder_levels(order=[1, 0])
2433
2433
MultiIndex([(3, 1),
2434
2434
(4, 2)],
2435
- names=[ 'y', 'x'] )
2435
+ names=( 'y', 'x') )
2436
2436
2437
2437
>>> mi.reorder_levels(order=['y', 'x'])
2438
2438
MultiIndex([(3, 1),
2439
2439
(4, 2)],
2440
- names=[ 'y', 'x'] )
2440
+ names=( 'y', 'x') )
2441
2441
"""
2442
2442
order = [self ._get_level_number (i ) for i in order ]
2443
2443
result = self ._reorder_ilevels (order )
@@ -2675,7 +2675,8 @@ def _get_indexer_level_0(self, target) -> npt.NDArray[np.intp]:
2675
2675
Optimized equivalent to `self.get_level_values(0).get_indexer_for(target)`.
2676
2676
"""
2677
2677
lev = self .levels [0 ]
2678
- codes = self ._codes [0 ]
2678
+ # error: Tuple index out of range
2679
+ codes = self ._codes [0 ] # type: ignore[misc]
2679
2680
cat = Categorical .from_codes (codes = codes , categories = lev , validate = False )
2680
2681
ci = Index (cat )
2681
2682
return ci .get_indexer_for (target )
0 commit comments