@@ -2678,6 +2678,7 @@ def fillna(self, value=None, downcast=None):
26782678 if downcast is None :
26792679 # no need to care metadata other than name
26802680 # because it can't have freq if it has NaTs
2681+ # _with_infer needed for test_fillna_categorical
26812682 return Index ._with_infer (result , name = self .name )
26822683 raise NotImplementedError (
26832684 f"{ type (self ).__name__ } .fillna does not support 'downcast' "
@@ -4230,10 +4231,10 @@ def _reindex_non_unique(
42304231 new_indexer = np .arange (len (self .take (indexer )), dtype = np .intp )
42314232 new_indexer [~ check ] = - 1
42324233
4233- if isinstance (self , ABCMultiIndex ):
4234- new_index = type ( self ). from_tuples ( new_labels , names = self .names )
4234+ if not isinstance (self , ABCMultiIndex ):
4235+ new_index = Index ( new_labels , name = self .name )
42354236 else :
4236- new_index = Index . _with_infer (new_labels , name = self .name )
4237+ new_index = type ( self ). from_tuples (new_labels , names = self .names )
42374238 return new_index , indexer , new_indexer
42384239
42394240 # --------------------------------------------------------------------
@@ -6477,7 +6478,7 @@ def insert(self, loc: int, item) -> Index:
64776478 if self ._typ == "numericindex" :
64786479 # Use self._constructor instead of Index to retain NumericIndex GH#43921
64796480 # TODO(2.0) can use Index instead of self._constructor
6480- return self ._constructor . _with_infer (new_values , name = self .name )
6481+ return self ._constructor (new_values , name = self .name )
64816482 else :
64826483 return Index ._with_infer (new_values , name = self .name )
64836484
@@ -6850,7 +6851,7 @@ def ensure_index_from_sequences(sequences, names=None) -> Index:
68506851 if len (sequences ) == 1 :
68516852 if names is not None :
68526853 names = names [0 ]
6853- return Index . _with_infer (sequences [0 ], name = names )
6854+ return Index (sequences [0 ], name = names )
68546855 else :
68556856 return MultiIndex .from_arrays (sequences , names = names )
68566857
@@ -6893,7 +6894,7 @@ def ensure_index(index_like: Axes, copy: bool = False) -> Index:
68936894
68946895 if isinstance (index_like , ABCSeries ):
68956896 name = index_like .name
6896- return Index . _with_infer (index_like , name = name , copy = copy )
6897+ return Index (index_like , name = name , copy = copy )
68976898
68986899 if is_iterator (index_like ):
68996900 index_like = list (index_like )
@@ -6909,9 +6910,9 @@ def ensure_index(index_like: Axes, copy: bool = False) -> Index:
69096910
69106911 return MultiIndex .from_arrays (index_like )
69116912 else :
6912- return Index . _with_infer (index_like , copy = copy , tupleize_cols = False )
6913+ return Index (index_like , copy = copy , tupleize_cols = False )
69136914 else :
6914- return Index . _with_infer (index_like , copy = copy )
6915+ return Index (index_like , copy = copy )
69156916
69166917
69176918def ensure_has_len (seq ):
0 commit comments