11from functools import partial
22import itertools
3- from typing import List
3+ from typing import List , Optional , Union
44
55import numpy as np
66
@@ -375,6 +375,7 @@ def _unstack_multiple(data, clocs, fill_value=None):
375375 unstcols = unstacked .index
376376 else :
377377 unstcols = unstacked .columns
378+ assert isinstance (unstcols , MultiIndex ) # for mypy
378379 new_levels = [unstcols .levels [0 ]] + clevels
379380 new_names = [data .columns .name ] + cnames
380381
@@ -433,15 +434,14 @@ def _unstack_frame(obj, level, fill_value=None):
433434 blocks = obj ._data .unstack (unstacker , fill_value = fill_value )
434435 return obj ._constructor (blocks )
435436 else :
436- unstacker = _Unstacker (
437+ return _Unstacker (
437438 obj .values ,
438439 obj .index ,
439440 level = level ,
440441 value_columns = obj .columns ,
441442 fill_value = fill_value ,
442443 constructor = obj ._constructor ,
443- )
444- return unstacker .get_result ()
444+ ).get_result ()
445445
446446
447447def _unstack_extension_series (series , level , fill_value ):
@@ -902,9 +902,10 @@ def check_len(item, name):
902902 elif isinstance (prefix_sep , dict ):
903903 prefix_sep = [prefix_sep [col ] for col in data_to_encode .columns ]
904904
905+ with_dummies : List [DataFrame ]
905906 if data_to_encode .shape == data .shape :
906907 # Encoding the entire df, do not prepend any dropped columns
907- with_dummies : List [ DataFrame ] = []
908+ with_dummies = []
908909 elif columns is not None :
909910 # Encoding only cols specified in columns. Get all cols not in
910911 # columns to prepend to result.
@@ -994,13 +995,15 @@ def _make_col_name(prefix, prefix_sep, level) -> str:
994995
995996 dummy_cols = [_make_col_name (prefix , prefix_sep , level ) for level in levels ]
996997
998+ index : Optional [Index ]
997999 if isinstance (data , Series ):
9981000 index = data .index
9991001 else :
10001002 index = None
10011003
10021004 if sparse :
10031005
1006+ fill_value : Union [bool , float , int ]
10041007 if is_integer_dtype (dtype ):
10051008 fill_value = 0
10061009 elif dtype == bool :
@@ -1010,7 +1013,7 @@ def _make_col_name(prefix, prefix_sep, level) -> str:
10101013
10111014 sparse_series = []
10121015 N = len (data )
1013- sp_indices = [[] for _ in range (len (dummy_cols ))]
1016+ sp_indices : List [ List ] = [[] for _ in range (len (dummy_cols ))]
10141017 mask = codes != - 1
10151018 codes = codes [mask ]
10161019 n_idx = np .arange (N )[mask ]
0 commit comments