@@ -117,9 +117,8 @@ def _single_replace(self, to_replace, method, inplace, limit):
117
117
"""
118
118
if self .ndim != 1 :
119
119
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__ } "
123
122
)
124
123
125
124
orig_dtype = self .dtype
@@ -254,7 +253,7 @@ def _validate_dtype(self, dtype):
254
253
if dtype .kind == "V" :
255
254
raise NotImplementedError (
256
255
"compound dtypes are not implemented"
257
- " in the {0} constructor" . format ( type (self ).__name__ )
256
+ f " in the { type (self ).__name__ } constructor"
258
257
)
259
258
260
259
return dtype
@@ -396,7 +395,7 @@ def _get_axis_number(cls, axis):
396
395
return cls ._AXIS_NUMBERS [axis ]
397
396
except KeyError :
398
397
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 } " )
400
399
401
400
@classmethod
402
401
def _get_axis_name (cls , axis ):
@@ -409,7 +408,7 @@ def _get_axis_name(cls, axis):
409
408
return cls ._AXIS_NAMES [axis ]
410
409
except KeyError :
411
410
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 } " )
413
412
414
413
def _get_axis (self , axis ):
415
414
name = self ._get_axis_name (axis )
@@ -437,7 +436,7 @@ def _get_axis_resolvers(self, axis):
437
436
# prefix with 'i' or 'c' depending on the input axis
438
437
# e.g., you must do ilevel_0 for the 0th level of an unnamed
439
438
# multiiindex
440
- key = "{prefix}level_{i}" . format ( prefix = prefix , i = i )
439
+ key = f "{ prefix } level_{ i } "
441
440
level = i
442
441
443
442
level_values = axis_index .get_level_values (level )
@@ -1082,7 +1081,7 @@ def rename(self, *args, **kwargs):
1082
1081
if kwargs :
1083
1082
raise TypeError (
1084
1083
"rename() got an unexpected keyword "
1085
- 'argument "{0}"' . format ( list (kwargs .keys ())[0 ])
1084
+ f 'argument "{ list (kwargs .keys ())[0 ]} "'
1086
1085
)
1087
1086
1088
1087
if com .count_not_none (* axes .values ()) == 0 :
@@ -1108,7 +1107,7 @@ def rename(self, *args, **kwargs):
1108
1107
missing_labels = [
1109
1108
label for index , label in enumerate (v ) if indexer [index ] == - 1
1110
1109
]
1111
- raise KeyError ("{ } not found in axis". format ( missing_labels ) )
1110
+ raise KeyError (f" { missing_labels } not found in axis" )
1112
1111
1113
1112
result ._data = result ._data .rename_axis (
1114
1113
f , axis = baxis , copy = copy , level = level
@@ -1257,7 +1256,7 @@ class name
1257
1256
if kwargs :
1258
1257
raise TypeError (
1259
1258
"rename_axis() got an unexpected keyword "
1260
- 'argument "{0}"' . format ( list (kwargs .keys ())[0 ])
1259
+ f 'argument "{ list (kwargs .keys ())[0 ]} "'
1261
1260
)
1262
1261
1263
1262
inplace = validate_bool_kwarg (inplace , "inplace" )
@@ -1461,9 +1460,7 @@ def __neg__(self):
1461
1460
):
1462
1461
arr = operator .neg (values )
1463
1462
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 } " )
1467
1464
return self .__array_wrap__ (arr )
1468
1465
1469
1466
def __pos__ (self ):
@@ -1477,9 +1474,7 @@ def __pos__(self):
1477
1474
):
1478
1475
arr = operator .pos (values )
1479
1476
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 } " )
1483
1478
return self .__array_wrap__ (arr )
1484
1479
1485
1480
def __invert__ (self ):
@@ -1492,10 +1487,8 @@ def __invert__(self):
1492
1487
1493
1488
def __nonzero__ (self ):
1494
1489
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()."
1499
1492
)
1500
1493
1501
1494
__bool__ = __nonzero__
@@ -1519,7 +1512,7 @@ def bool(self):
1519
1512
elif is_scalar (v ):
1520
1513
raise ValueError (
1521
1514
"bool cannot act on a non-boolean single element "
1522
- "{0}" . format ( type (self ).__name__ )
1515
+ f" { type (self ).__name__ } "
1523
1516
)
1524
1517
1525
1518
self .__nonzero__ ()
@@ -1659,14 +1652,8 @@ def _check_label_or_level_ambiguity(self, key, axis: int = 0) -> None:
1659
1652
)
1660
1653
1661
1654
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."
1670
1657
)
1671
1658
raise ValueError (msg )
1672
1659
@@ -1731,12 +1718,8 @@ def _get_label_or_level_values(self, key: str, axis: int = 0) -> np.ndarray:
1731
1718
label_axis_name = "column" if axis == 0 else "index"
1732
1719
raise ValueError (
1733
1720
(
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 } "
1740
1723
)
1741
1724
)
1742
1725
@@ -1780,8 +1763,8 @@ def _drop_labels_or_levels(self, keys, axis: int = 0):
1780
1763
raise ValueError (
1781
1764
(
1782
1765
"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
+ )
1785
1768
)
1786
1769
1787
1770
# Compute levels and labels to drop
@@ -1998,7 +1981,7 @@ def __setstate__(self, state):
1998
1981
def __repr__ (self ) -> str :
1999
1982
# string representation based upon iterating over self
2000
1983
# (since, by definition, `PandasContainers` are iterable)
2001
- prepr = "[%s]" % "," .join (map (pprint_thing , self ))
1984
+ prepr = f"[ { ',' .join (map (pprint_thing , self ))} ]"
2002
1985
return f"{ type (self ).__name__ } ({ prepr } )"
2003
1986
2004
1987
def _repr_latex_ (self ):
@@ -3946,13 +3929,13 @@ def _drop_axis(self, labels, axis, level=None, errors: str = "raise"):
3946
3929
3947
3930
# GH 18561 MultiIndex.drop should raise if label is absent
3948
3931
if errors == "raise" and indexer .all ():
3949
- raise KeyError ("{ } not found in axis". format ( labels ) )
3932
+ raise KeyError (f" { labels } not found in axis" )
3950
3933
else :
3951
3934
indexer = ~ axis .isin (labels )
3952
3935
# Check if label doesn't exist along axis
3953
3936
labels_missing = (axis .get_indexer_for (labels ) == - 1 ).any ()
3954
3937
if errors == "raise" and labels_missing :
3955
- raise KeyError ("{ } not found in axis". format ( labels ) )
3938
+ raise KeyError (f" { labels } not found in axis" )
3956
3939
3957
3940
slicer = [slice (None )] * self .ndim
3958
3941
slicer [self ._get_axis_number (axis_name )] = indexer
@@ -4476,7 +4459,7 @@ def reindex(self, *args, **kwargs):
4476
4459
if kwargs :
4477
4460
raise TypeError (
4478
4461
"reindex() got an unexpected keyword "
4479
- 'argument "{0}"' . format ( list (kwargs .keys ())[0 ])
4462
+ f 'argument "{ list (kwargs .keys ())[0 ]} "'
4480
4463
)
4481
4464
4482
4465
self ._consolidate_inplace ()
@@ -5997,7 +5980,7 @@ def fillna(
5997
5980
raise TypeError (
5998
5981
'"value" parameter must be a scalar, dict '
5999
5982
"or Series, but you passed a "
6000
- '"{0}"' . format ( type (value ).__name__ )
5983
+ f '"{ type (value ).__name__ } "'
6001
5984
)
6002
5985
6003
5986
new_data = self ._data .fillna (
@@ -6781,9 +6764,9 @@ def interpolate(
6781
6764
if method not in methods and not is_numeric_or_datetime :
6782
6765
raise ValueError (
6783
6766
"Index column must be numeric or datetime type when "
6784
- "using {method} method other than linear. "
6767
+ f "using { method } method other than linear. "
6785
6768
"Try setting a numeric or datetime index column before "
6786
- "interpolating." . format ( method = method )
6769
+ "interpolating."
6787
6770
)
6788
6771
6789
6772
if isna (index ).any ():
@@ -9205,7 +9188,7 @@ def _tz_convert(ax, tz):
9205
9188
ax = ax .set_levels (new_level , level = level )
9206
9189
else :
9207
9190
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" )
9209
9192
ax = _tz_convert (ax , tz )
9210
9193
9211
9194
result = self ._constructor (self ._data , copy = copy )
@@ -9375,7 +9358,7 @@ def _tz_localize(ax, tz, ambiguous, nonexistent):
9375
9358
ax = ax .set_levels (new_level , level = level )
9376
9359
else :
9377
9360
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" )
9379
9362
ax = _tz_localize (ax , tz , ambiguous , nonexistent )
9380
9363
9381
9364
result = self ._constructor (self ._data , copy = copy )
@@ -10357,8 +10340,8 @@ def last_valid_index(self):
10357
10340
10358
10341
def _doc_parms (cls ):
10359
10342
"""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 )) } }}"
10362
10345
)
10363
10346
name = cls ._constructor_sliced .__name__ if cls ._AXIS_LEN > 1 else "scalar"
10364
10347
name2 = cls .__name__
0 commit comments