Skip to content

Commit 221ab06

Browse files
committed
ENH: improve DatetimeIndex repr for len-1 and len-2 cases close #1611
1 parent e147e0f commit 221ab06

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

RELEASE.rst

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ pandas 0.8.1
4242
drop single levels with ``reset_index`` (#1569, #1577)
4343
- Always apply passed functions in ``resample``, even if upsampling (#1596)
4444
- Avoid unnecessary copies in DataFrame constructor with explicit dtype (#1572)
45+
- Cleaner DatetimeIndex string representation with 1 or 2 elements (#1611)
4546

4647
**Bug fixes**
4748

pandas/tseries/index.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -374,10 +374,18 @@ def __repr__(self):
374374
freq = self.offset.freqstr
375375

376376
summary = str(self.__class__)
377-
if len(self) > 0:
377+
if len(self) == 1:
378+
first = _format_datetime64(values[0], tz=self.tz)
379+
summary += '\n[%s]' % first
380+
elif len(self) == 2:
381+
first = _format_datetime64(values[0], tz=self.tz)
382+
last = _format_datetime64(values[-1], tz=self.tz)
383+
summary += '\n[%s, %s]' % (first, last)
384+
elif len(self) > 2:
378385
first = _format_datetime64(values[0], tz=self.tz)
379386
last = _format_datetime64(values[-1], tz=self.tz)
380387
summary += '\n[%s, ..., %s]' % (first, last)
388+
381389
tagline = '\nLength: %d, Freq: %s, Timezone: %s'
382390
summary += tagline % (len(self), freq, self.tz)
383391

pandas/tseries/tests/test_timeseries.py

+10
Original file line numberDiff line numberDiff line change
@@ -997,6 +997,16 @@ def test_groupby_count_dateparseerror(self):
997997

998998
assert_series_equal(result, expected)
999999

1000+
def test_datetimeindex_repr_short(self):
1001+
dr = date_range(start='1/1/2012', periods=1)
1002+
repr(dr)
1003+
1004+
dr = date_range(start='1/1/2012', periods=2)
1005+
repr(dr)
1006+
1007+
dr = date_range(start='1/1/2012', periods=3)
1008+
repr(dr)
1009+
10001010

10011011
def _simple_ts(start, end, freq='D'):
10021012
rng = date_range(start, end, freq=freq)

0 commit comments

Comments
 (0)