diff --git a/pandas/core/format.py b/pandas/core/format.py index 482932f73e67c..92079e8d4c7d9 100644 --- a/pandas/core/format.py +++ b/pandas/core/format.py @@ -78,8 +78,22 @@ def _get_footer(self): if footer and self.series.name: footer += ', ' - footer += ("Name: %s" % str(self.series.name) - if self.series.name is not None else '') + + if self.series.name: + if isinstance(self.series.name,basestring): + series_name=self.series.name + elif hasattr(self.series.name, "__getitem__") or \ + hasattr(self.series.name, "__iter__"): + series_name="('" + series_name+= "', '".join(map(unicode,self.series.name)) + series_name+= "')" + else: + series_name=str(self.series.name) + else: + series_name=self.series.name + + footer += (("Name: %s" % series_name) + if series_name is not None else '') if self.length: if footer: diff --git a/pandas/tests/test_format.py b/pandas/tests/test_format.py index 01f5d5923ad14..cfd8ff209c34a 100644 --- a/pandas/tests/test_format.py +++ b/pandas/tests/test_format.py @@ -694,6 +694,11 @@ def test_to_string_float_na_spacing(self): '4 NaN') self.assertEqual(result, expected) + def test_unicode_name_in_footer(self): + s=Series([1,2],name=u'\u05e2\u05d1\u05e8\u05d9\u05ea') + sf=fmt.SeriesFormatter(s,name=u'\u05e2\u05d1\u05e8\u05d9\u05ea') + sf._get_footer() # should not raise exception + class TestEngFormatter(unittest.TestCase): def test_eng_float_formatter(self):