@@ -849,7 +849,7 @@ def _get_column_name_list(self):
849849# Array formatters
850850
851851
852- def format_array (values , formatter , float_format = None , na_rep = 'NaN' ,
852+ def format_array (values , formatter = None , float_format = None , na_rep = 'NaN' ,
853853 digits = None , space = None , justify = 'right' , decimal = '.' ,
854854 leading_space = None ):
855855 """
@@ -879,14 +879,23 @@ def format_array(values, formatter, float_format=None, na_rep='NaN',
879879 List[str]
880880 """
881881
882+ if is_extension_array_dtype (values .dtype ):
883+ if isinstance (values , (ABCIndexClass , ABCSeries )):
884+ values = values ._values
885+
886+ if is_categorical_dtype (values .dtype ):
887+ # Categorical is special for now, so that we can preserve tzinfo
888+ values = values .get_values ()
889+
890+ if not is_datetime64tz_dtype (values .dtype ):
891+ values = np .asarray (values )
892+
882893 if is_datetime64_dtype (values .dtype ):
883894 fmt_klass = Datetime64Formatter
884895 elif is_datetime64tz_dtype (values ):
885896 fmt_klass = Datetime64TZFormatter
886897 elif is_timedelta64_dtype (values .dtype ):
887898 fmt_klass = Timedelta64Formatter
888- elif is_extension_array_dtype (values .dtype ):
889- fmt_klass = ExtensionArrayFormatter
890899 elif is_float_dtype (values .dtype ) or is_complex_dtype (values .dtype ):
891900 fmt_klass = FloatArrayFormatter
892901 elif is_integer_dtype (values .dtype ):
@@ -1181,29 +1190,6 @@ def _format_strings(self):
11811190 return fmt_values .tolist ()
11821191
11831192
1184- class ExtensionArrayFormatter (GenericArrayFormatter ):
1185- def _format_strings (self ):
1186- values = self .values
1187- if isinstance (values , (ABCIndexClass , ABCSeries )):
1188- values = values ._values
1189-
1190- formatter = values ._formatter (boxed = True )
1191-
1192- if is_categorical_dtype (values .dtype ):
1193- # Categorical is special for now, so that we can preserve tzinfo
1194- array = values .get_values ()
1195- else :
1196- array = np .asarray (values )
1197-
1198- fmt_values = format_array (array ,
1199- formatter ,
1200- float_format = self .float_format ,
1201- na_rep = self .na_rep , digits = self .digits ,
1202- space = self .space , justify = self .justify ,
1203- leading_space = self .leading_space )
1204- return fmt_values
1205-
1206-
12071193def format_percentiles (percentiles ):
12081194 """
12091195 Outputs rounded and formatted percentiles.
0 commit comments