diff --git a/pandas/core/indexes/base.py b/pandas/core/indexes/base.py index fc2c51166a737..b05b7cae8042e 100644 --- a/pandas/core/indexes/base.py +++ b/pandas/core/indexes/base.py @@ -1291,11 +1291,30 @@ def _format_with_header(self, header: list[str_t], na_rep: str_t) -> list[str_t] return header + result def _format_native_types( - self, *, na_rep: str_t = "", quoting=None, **kwargs + self, + *, + na_rep: str_t = "", + decimal: str_t = ".", + float_format=None, + date_format=None, + quoting=None, ) -> npt.NDArray[np.object_]: """ Actually format specific types of the index. """ + from pandas.io.formats.format import FloatArrayFormatter + + if is_float_dtype(self.dtype) and not is_extension_array_dtype(self.dtype): + formatter = FloatArrayFormatter( + self._values, + na_rep=na_rep, + float_format=float_format, + decimal=decimal, + quoting=quoting, + fixed_width=False, + ) + return formatter.get_result_as_array() + mask = isna(self) if not self.is_object() and not quoting: values = np.asarray(self).astype(str) diff --git a/pandas/core/indexes/numeric.py b/pandas/core/indexes/numeric.py index fab741ec1ba18..68bdd1893c77f 100644 --- a/pandas/core/indexes/numeric.py +++ b/pandas/core/indexes/numeric.py @@ -5,10 +5,7 @@ import numpy as np from pandas._libs import index as libindex -from pandas._typing import ( - Dtype, - npt, -) +from pandas._typing import Dtype from pandas.util._decorators import ( cache_readonly, doc, @@ -251,33 +248,3 @@ def _assert_safe_casting(cls, data: np.ndarray, subarr: np.ndarray) -> None: if is_integer_dtype(subarr.dtype): if not np.array_equal(data, subarr): raise TypeError("Unsafe NumPy casting, you must explicitly cast") - - def _format_native_types( - self, - *, - na_rep: str = "", - float_format=None, - decimal: str = ".", - quoting=None, - **kwargs, - ) -> npt.NDArray[np.object_]: - from pandas.io.formats.format import FloatArrayFormatter - - if is_float_dtype(self.dtype): - formatter = FloatArrayFormatter( - self._values, - na_rep=na_rep, - float_format=float_format, - decimal=decimal, - quoting=quoting, - fixed_width=False, - ) - return formatter.get_result_as_array() - - return super()._format_native_types( - na_rep=na_rep, - float_format=float_format, - decimal=decimal, - quoting=quoting, - **kwargs, - )