@@ -329,7 +329,7 @@ def is_numeric_dtype(dtype):
329
329
fmt_columns = zip (* fmt_columns )
330
330
dtypes = self .frame .dtypes .values
331
331
need_leadsp = dict (zip (fmt_columns , map (is_numeric_dtype , dtypes )))
332
- str_columns = zip (* [[u' %s' % y
332
+ str_columns = zip (* [[' ' + y
333
333
if y not in self .formatters and need_leadsp [x ]
334
334
else y for y in x ]
335
335
for x in fmt_columns ])
@@ -341,7 +341,7 @@ def is_numeric_dtype(dtype):
341
341
fmt_columns = self .columns .format ()
342
342
dtypes = self .frame .dtypes
343
343
need_leadsp = dict (zip (fmt_columns , map (is_numeric_dtype , dtypes )))
344
- str_columns = [[u' %s' % x
344
+ str_columns = [[' ' + x
345
345
if col not in self .formatters and need_leadsp [x ]
346
346
else x ]
347
347
for col , x in zip (self .columns , fmt_columns )]
@@ -439,6 +439,18 @@ def __init__(self, values, digits=7, formatter=None, na_rep='NaN',
439
439
self .justify = justify
440
440
441
441
def get_result (self ):
442
+ if self ._have_unicode ():
443
+ fmt_values = self ._format_strings (use_unicode = True )
444
+ else :
445
+ fmt_values = self ._format_strings (use_unicode = False )
446
+
447
+ return _make_fixed_width (fmt_values , self .justify )
448
+
449
+ def _have_unicode (self ):
450
+ mask = lib .map_infer (self .values , lambda x : isinstance (x , unicode ))
451
+ return mask .any ()
452
+
453
+ def _format_strings (self , use_unicode = False ):
442
454
if self .float_format is None :
443
455
float_format = print_config .float_format
444
456
if float_format is None :
@@ -447,7 +459,10 @@ def get_result(self):
447
459
else :
448
460
float_format = self .float_format
449
461
450
- formatter = _stringify if self .formatter is None else self .formatter
462
+ if use_unicode :
463
+ formatter = _stringify if self .formatter is None else self .formatter
464
+ else :
465
+ formatter = str if self .formatter is None else self .formatter
451
466
452
467
def _format (x ):
453
468
if self .na_rep is not None and lib .checknull (x ):
@@ -472,7 +487,7 @@ def _format(x):
472
487
else :
473
488
fmt_values .append (' %s' % _format (v ))
474
489
475
- return _make_fixed_width ( fmt_values , self . justify )
490
+ return fmt_values
476
491
477
492
class FloatArrayFormatter (GenericArrayFormatter ):
478
493
"""
0 commit comments