@@ -117,9 +117,8 @@ def _single_replace(self, to_replace, method, inplace, limit):
117117 """
118118 if self .ndim != 1 :
119119 raise TypeError (
120- "cannot replace {0} with method {1} on a {2}" .format (
121- to_replace , method , type (self ).__name__
122- )
120+ f"cannot replace { to_replace } with method { method } on a "
121+ f"{ type (self ).__name__ } "
123122 )
124123
125124 orig_dtype = self .dtype
@@ -254,7 +253,7 @@ def _validate_dtype(self, dtype):
254253 if dtype .kind == "V" :
255254 raise NotImplementedError (
256255 "compound dtypes are not implemented"
257- " in the {0} constructor" . format ( type (self ).__name__ )
256+ f " in the { type (self ).__name__ } constructor"
258257 )
259258
260259 return dtype
@@ -396,7 +395,7 @@ def _get_axis_number(cls, axis):
396395 return cls ._AXIS_NUMBERS [axis ]
397396 except KeyError :
398397 pass
399- raise ValueError ("No axis named {0 } for object type {1}" . format ( axis , cls ) )
398+ raise ValueError (f "No axis named { axis } for object type { cls } " )
400399
401400 @classmethod
402401 def _get_axis_name (cls , axis ):
@@ -409,7 +408,7 @@ def _get_axis_name(cls, axis):
409408 return cls ._AXIS_NAMES [axis ]
410409 except KeyError :
411410 pass
412- raise ValueError ("No axis named {0 } for object type {1}" . format ( axis , cls ) )
411+ raise ValueError (f "No axis named { axis } for object type { cls } " )
413412
414413 def _get_axis (self , axis ):
415414 name = self ._get_axis_name (axis )
@@ -437,7 +436,7 @@ def _get_axis_resolvers(self, axis):
437436 # prefix with 'i' or 'c' depending on the input axis
438437 # e.g., you must do ilevel_0 for the 0th level of an unnamed
439438 # multiiindex
440- key = "{prefix}level_{i}" . format ( prefix = prefix , i = i )
439+ key = f "{ prefix } level_{ i } "
441440 level = i
442441
443442 level_values = axis_index .get_level_values (level )
@@ -1082,7 +1081,7 @@ def rename(self, *args, **kwargs):
10821081 if kwargs :
10831082 raise TypeError (
10841083 "rename() got an unexpected keyword "
1085- 'argument "{0}"' . format ( list (kwargs .keys ())[0 ])
1084+ f 'argument "{ list (kwargs .keys ())[0 ]} "'
10861085 )
10871086
10881087 if com .count_not_none (* axes .values ()) == 0 :
@@ -1108,7 +1107,7 @@ def rename(self, *args, **kwargs):
11081107 missing_labels = [
11091108 label for index , label in enumerate (v ) if indexer [index ] == - 1
11101109 ]
1111- raise KeyError ("{ } not found in axis". format ( missing_labels ) )
1110+ raise KeyError (f" { missing_labels } not found in axis" )
11121111
11131112 result ._data = result ._data .rename_axis (
11141113 f , axis = baxis , copy = copy , level = level
@@ -1257,7 +1256,7 @@ class name
12571256 if kwargs :
12581257 raise TypeError (
12591258 "rename_axis() got an unexpected keyword "
1260- 'argument "{0}"' . format ( list (kwargs .keys ())[0 ])
1259+ f 'argument "{ list (kwargs .keys ())[0 ]} "'
12611260 )
12621261
12631262 inplace = validate_bool_kwarg (inplace , "inplace" )
@@ -1461,9 +1460,7 @@ def __neg__(self):
14611460 ):
14621461 arr = operator .neg (values )
14631462 else :
1464- raise TypeError (
1465- "Unary negative expects numeric dtype, not {}" .format (values .dtype )
1466- )
1463+ raise TypeError (f"Unary negative expects numeric dtype, not { values .dtype } " )
14671464 return self .__array_wrap__ (arr )
14681465
14691466 def __pos__ (self ):
@@ -1477,9 +1474,7 @@ def __pos__(self):
14771474 ):
14781475 arr = operator .pos (values )
14791476 else :
1480- raise TypeError (
1481- "Unary plus expects numeric dtype, not {}" .format (values .dtype )
1482- )
1477+ raise TypeError (f"Unary plus expects numeric dtype, not { values .dtype } " )
14831478 return self .__array_wrap__ (arr )
14841479
14851480 def __invert__ (self ):
@@ -1492,10 +1487,8 @@ def __invert__(self):
14921487
14931488 def __nonzero__ (self ):
14941489 raise ValueError (
1495- "The truth value of a {0} is ambiguous. "
1496- "Use a.empty, a.bool(), a.item(), a.any() or a.all()." .format (
1497- type (self ).__name__
1498- )
1490+ f"The truth value of a { type (self ).__name__ } is ambiguous. "
1491+ "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
14991492 )
15001493
15011494 __bool__ = __nonzero__
@@ -1519,7 +1512,7 @@ def bool(self):
15191512 elif is_scalar (v ):
15201513 raise ValueError (
15211514 "bool cannot act on a non-boolean single element "
1522- "{0}" . format ( type (self ).__name__ )
1515+ f" { type (self ).__name__ } "
15231516 )
15241517
15251518 self .__nonzero__ ()
@@ -1659,14 +1652,8 @@ def _check_label_or_level_ambiguity(self, key, axis: int = 0) -> None:
16591652 )
16601653
16611654 msg = (
1662- "'{key}' is both {level_article} {level_type} level and "
1663- "{label_article} {label_type} label, which is ambiguous."
1664- ).format (
1665- key = key ,
1666- level_article = level_article ,
1667- level_type = level_type ,
1668- label_article = label_article ,
1669- label_type = label_type ,
1655+ f"'{ key } ' is both { level_article } { level_type } level and "
1656+ f"{ label_article } { label_type } label, which is ambiguous."
16701657 )
16711658 raise ValueError (msg )
16721659
@@ -1731,12 +1718,8 @@ def _get_label_or_level_values(self, key: str, axis: int = 0) -> np.ndarray:
17311718 label_axis_name = "column" if axis == 0 else "index"
17321719 raise ValueError (
17331720 (
1734- "The {label_axis_name} label '{key}' "
1735- "is not unique.{multi_message}"
1736- ).format (
1737- key = key ,
1738- label_axis_name = label_axis_name ,
1739- multi_message = multi_message ,
1721+ f"The { label_axis_name } label '{ key } ' "
1722+ f"is not unique.{ multi_message } "
17401723 )
17411724 )
17421725
@@ -1780,8 +1763,8 @@ def _drop_labels_or_levels(self, keys, axis: int = 0):
17801763 raise ValueError (
17811764 (
17821765 "The following keys are not valid labels or "
1783- "levels for axis {axis}: {invalid_keys}"
1784- ). format ( axis = axis , invalid_keys = invalid_keys )
1766+ f "levels for axis { axis } : { invalid_keys } "
1767+ )
17851768 )
17861769
17871770 # Compute levels and labels to drop
@@ -1998,7 +1981,7 @@ def __setstate__(self, state):
19981981 def __repr__ (self ) -> str :
19991982 # string representation based upon iterating over self
20001983 # (since, by definition, `PandasContainers` are iterable)
2001- prepr = "[%s]" % "," .join (map (pprint_thing , self ))
1984+ prepr = f"[ { ',' .join (map (pprint_thing , self ))} ]"
20021985 return f"{ type (self ).__name__ } ({ prepr } )"
20031986
20041987 def _repr_latex_ (self ):
@@ -3946,13 +3929,13 @@ def _drop_axis(self, labels, axis, level=None, errors: str = "raise"):
39463929
39473930 # GH 18561 MultiIndex.drop should raise if label is absent
39483931 if errors == "raise" and indexer .all ():
3949- raise KeyError ("{ } not found in axis". format ( labels ) )
3932+ raise KeyError (f" { labels } not found in axis" )
39503933 else :
39513934 indexer = ~ axis .isin (labels )
39523935 # Check if label doesn't exist along axis
39533936 labels_missing = (axis .get_indexer_for (labels ) == - 1 ).any ()
39543937 if errors == "raise" and labels_missing :
3955- raise KeyError ("{ } not found in axis". format ( labels ) )
3938+ raise KeyError (f" { labels } not found in axis" )
39563939
39573940 slicer = [slice (None )] * self .ndim
39583941 slicer [self ._get_axis_number (axis_name )] = indexer
@@ -4476,7 +4459,7 @@ def reindex(self, *args, **kwargs):
44764459 if kwargs :
44774460 raise TypeError (
44784461 "reindex() got an unexpected keyword "
4479- 'argument "{0}"' . format ( list (kwargs .keys ())[0 ])
4462+ f 'argument "{ list (kwargs .keys ())[0 ]} "'
44804463 )
44814464
44824465 self ._consolidate_inplace ()
@@ -5997,7 +5980,7 @@ def fillna(
59975980 raise TypeError (
59985981 '"value" parameter must be a scalar, dict '
59995982 "or Series, but you passed a "
6000- '"{0}"' . format ( type (value ).__name__ )
5983+ f '"{ type (value ).__name__ } "'
60015984 )
60025985
60035986 new_data = self ._data .fillna (
@@ -6781,9 +6764,9 @@ def interpolate(
67816764 if method not in methods and not is_numeric_or_datetime :
67826765 raise ValueError (
67836766 "Index column must be numeric or datetime type when "
6784- "using {method} method other than linear. "
6767+ f "using { method } method other than linear. "
67856768 "Try setting a numeric or datetime index column before "
6786- "interpolating." . format ( method = method )
6769+ "interpolating."
67876770 )
67886771
67896772 if isna (index ).any ():
@@ -9205,7 +9188,7 @@ def _tz_convert(ax, tz):
92059188 ax = ax .set_levels (new_level , level = level )
92069189 else :
92079190 if level not in (None , 0 , ax .name ):
9208- raise ValueError ("The level {0 } is not valid" . format ( level ) )
9191+ raise ValueError (f "The level { level } is not valid" )
92099192 ax = _tz_convert (ax , tz )
92109193
92119194 result = self ._constructor (self ._data , copy = copy )
@@ -9375,7 +9358,7 @@ def _tz_localize(ax, tz, ambiguous, nonexistent):
93759358 ax = ax .set_levels (new_level , level = level )
93769359 else :
93779360 if level not in (None , 0 , ax .name ):
9378- raise ValueError ("The level {0 } is not valid" . format ( level ) )
9361+ raise ValueError (f "The level { level } is not valid" )
93799362 ax = _tz_localize (ax , tz , ambiguous , nonexistent )
93809363
93819364 result = self ._constructor (self ._data , copy = copy )
@@ -10357,8 +10340,8 @@ def last_valid_index(self):
1035710340
1035810341def _doc_parms (cls ):
1035910342 """Return a tuple of the doc parms."""
10360- axis_descr = "{%s}" % ", " . join (
10361- "{0} ({1})" . format ( a , i ) for i , a in enumerate (cls ._AXIS_ORDERS )
10343+ axis_descr = (
10344+ f"{{ { ', ' . join ( f' { a } ( { i } )' for i , a in enumerate (cls ._AXIS_ORDERS )) } }}"
1036210345 )
1036310346 name = cls ._constructor_sliced .__name__ if cls ._AXIS_LEN > 1 else "scalar"
1036410347 name2 = cls .__name__
0 commit comments