Skip to content

Commit cec73d0

Browse files
committed
adjust index display to max_seq_items
1 parent c97cdd4 commit cec73d0

File tree

3 files changed

+42
-32
lines changed

3 files changed

+42
-32
lines changed

pandas/core/index.py

+41-8
Original file line numberDiff line numberDiff line change
@@ -411,24 +411,57 @@ def __unicode__(self):
411411
py2/py3.
412412
"""
413413
klass = self.__class__.__name__
414-
space = ' ' * (len(klass) + 1)
415414
data = self._format_data()
416415
attrs = self._format_attrs()
417-
prepr = (u(",\n%s") % space).join([u("%s=%s") % (k, v)
416+
max_seq_items = get_option('display.max_seq_items')
417+
if len(self) > max_seq_items:
418+
space = "\n%s" % (' ' * (len(klass) + 1))
419+
else:
420+
space = " "
421+
422+
prepr = (u(",%s") % space).join([u("%s=%s") % (k, v)
418423
for k, v in attrs])
419-
res = u("%s(%s,\n%s%s)") % (klass,
420-
data,
421-
space,
422-
prepr)
424+
res = u("%s(%s,%s%s)") % (klass,
425+
data,
426+
space,
427+
prepr)
423428

424429
return res
425430

431+
@property
432+
def _formatter_func(self):
433+
"""
434+
Return the formatted data as a unicode string
435+
"""
436+
return default_pprint
437+
426438
def _format_data(self):
427439
"""
428440
Return the formatted data as a unicode string
429441
"""
430-
return com.pprint_thing(self, escape_chars=('\t', '\r', '\n'),
431-
quote_strings=True)
442+
443+
max_seq_items = get_option('display.max_seq_items')
444+
formatter = self._formatter_func
445+
n = len(self)
446+
if n == 0:
447+
summary = '[]'
448+
elif n == 1:
449+
first = formatter(self[0])
450+
summary = '[%s]' % first
451+
elif n == 2:
452+
first = formatter(self[0])
453+
last = formatter(self[-1])
454+
summary = '[%s, %s]' % (first, last)
455+
elif n > max_seq_items:
456+
n = min(max_seq_items//2,2)
457+
head = ', '.join([ formatter(x) for x in self[:n] ])
458+
tail = ', '.join([ formatter(x) for x in self[-n:] ])
459+
summary = '[%s, ..., %s]' % (head, tail)
460+
else:
461+
summary = "[%s]" % ', '.join([ formatter(x) for x in self ])
462+
463+
return summary
464+
432465

433466
def _format_attrs(self):
434467
"""

pandas/tseries/base.py

-23
Original file line numberDiff line numberDiff line change
@@ -260,29 +260,6 @@ def _formatter_func(self):
260260
"""
261261
return str
262262

263-
def _format_data(self):
264-
"""
265-
Return the formatted data as a unicode string
266-
"""
267-
268-
formatter = self._formatter_func
269-
n = len(self)
270-
if n == 0:
271-
summary = '[]'
272-
elif n == 1:
273-
first = formatter(self[0])
274-
summary = '[%s]' % first
275-
elif n == 2:
276-
first = formatter(self[0])
277-
last = formatter(self[-1])
278-
summary = '[%s, %s]' % (first, last)
279-
else:
280-
first = formatter(self[0])
281-
last = formatter(self[-1])
282-
summary = '[%s, ..., %s]' % (first, last)
283-
284-
return summary
285-
286263
def _format_attrs(self):
287264
"""
288265
Return a list of tuples of the (attr,formatted_value)

pandas/tseries/index.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -597,7 +597,7 @@ def _is_dates_only(self):
597597
def _formatter_func(self):
598598
from pandas.core.format import _get_format_datetime64
599599
formatter = _get_format_datetime64(is_dates_only=self._is_dates_only)
600-
return lambda x: formatter(x, tz=self.tz)
600+
return lambda x: "'%s'" % formatter(x, tz=self.tz)
601601

602602
def __reduce__(self):
603603

0 commit comments

Comments
 (0)