Skip to content

Commit 96ae488

Browse files
committed
BUG: more #680 fixes
1 parent c52dd87 commit 96ae488

File tree

4 files changed

+21
-6
lines changed

4 files changed

+21
-6
lines changed

pandas/core/format.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,11 @@ def to_string(self):
179179
to_write = []
180180

181181
if len(frame.columns) == 0 or len(frame.index) == 0:
182-
info_line = 'Empty %s\nColumns: %s\nIndex: %s'
183-
to_write.append(info_line % (type(self.frame).__name__,
184-
repr(frame.columns),
185-
repr(frame.index)))
182+
info_line = ('Empty %s\nColumns: %s\nIndex: %s'
183+
% (type(self.frame).__name__,
184+
repr(frame.columns),
185+
repr(frame.index)))
186+
to_write.append(info_line)
186187
else:
187188
# may include levels names also
188189
str_index = self._get_formatted_index()

pandas/core/index.py

+8
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,14 @@ def summary(self):
121121
name = type(self).__name__
122122
return '%s: %s entries%s' % (name, len(self), index_summary)
123123

124+
def __repr__(self):
125+
try:
126+
return np.array_repr(self.values)
127+
except UnicodeError:
128+
return np.array_repr(np.array(
129+
[x if not isinstance(x, basestring) else unicode(x)
130+
for x in self.values]))
131+
124132
@property
125133
def values(self):
126134
return np.asarray(self)

pandas/core/series.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -569,7 +569,7 @@ def _tidy_repr(self, max_vals=20):
569569
length=False,
570570
name=False)
571571
result = head + '\n...\n' + tail
572-
namestr = "Name: %s, " % str(self.name) if self.name else ""
572+
namestr = "Name: %s, " % str(unicode(self.name)) if self.name else ""
573573
result = '%s\n%sLength: %d' % (result, namestr, len(self))
574574
return result
575575

pandas/tests/test_frame.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -1836,10 +1836,16 @@ def test_to_string_unicode_columns(self):
18361836
df.info(buf=buf)
18371837
buf.getvalue()
18381838

1839+
def test_to_string_unicode_two(self):
1840+
dm = DataFrame({u'c/\u03c3': []})
1841+
buf = StringIO()
1842+
dm.to_string(buf)
1843+
18391844
def test_to_string_with_formatters_unicode(self):
18401845
df = DataFrame({u'c/\u03c3':[1,2,3]})
18411846
result = df.to_string(formatters={u'c/\u03c3': lambda x: '%s' % x})
1842-
self.assertEqual(result, ' c/\xcf\x83\n0 1 \n1 2 \n2 3 ')
1847+
assert(result in (' c/\xcf\x83\n0 1 \n1 2 \n2 3 ',
1848+
' c/?\n0 1 \n1 2 \n2 3 ' ))
18431849

18441850
def test_head_tail(self):
18451851
assert_frame_equal(self.frame.head(), self.frame[:5])

0 commit comments

Comments
 (0)