@@ -849,7 +849,7 @@ def _get_column_name_list(self):
849
849
# Array formatters
850
850
851
851
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' ,
853
853
digits = None , space = None , justify = 'right' , decimal = '.' ,
854
854
leading_space = None ):
855
855
"""
@@ -879,14 +879,23 @@ def format_array(values, formatter, float_format=None, na_rep='NaN',
879
879
List[str]
880
880
"""
881
881
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
+
882
893
if is_datetime64_dtype (values .dtype ):
883
894
fmt_klass = Datetime64Formatter
884
895
elif is_datetime64tz_dtype (values ):
885
896
fmt_klass = Datetime64TZFormatter
886
897
elif is_timedelta64_dtype (values .dtype ):
887
898
fmt_klass = Timedelta64Formatter
888
- elif is_extension_array_dtype (values .dtype ):
889
- fmt_klass = ExtensionArrayFormatter
890
899
elif is_float_dtype (values .dtype ) or is_complex_dtype (values .dtype ):
891
900
fmt_klass = FloatArrayFormatter
892
901
elif is_integer_dtype (values .dtype ):
@@ -1181,29 +1190,6 @@ def _format_strings(self):
1181
1190
return fmt_values .tolist ()
1182
1191
1183
1192
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
-
1207
1193
def format_percentiles (percentiles ):
1208
1194
"""
1209
1195
Outputs rounded and formatted percentiles.
0 commit comments