API: DatetimeIndex and PeriodIndex string representation · Issue #7601 · pandas-dev/pandas (original) (raw)

DatetimeIndex and PeriodIndex have inconsistent representations. Should PeriodIndex behaves as the same as DatetimeIndex, or DatetimeIndex should have one-liner representation in some methods?

import pandas and pd

# DatetimeIndex ---------------------------------------------------------------
idx = pd.DatetimeIndex(['2011-01-01', '2011-01-02', '2011-01-03'], freq='D')

print(idx)
# <class 'pandas.tseries.index.DatetimeIndex'>
# [2011-01-01, ..., 2011-01-03]
# Length: 3, Freq: D, Timezone: None

idx.__repr__()
# <class 'pandas.tseries.index.DatetimeIndex'>
# [2011-01-01, ..., 2011-01-03]
# Length: 3, Freq: D, Timezone: None

idx.__unicode__()
# <class 'pandas.tseries.index.DatetimeIndex'>
# [2011-01-01, ..., 2011-01-03]
# Length: 3, Freq: D, Timezone: None

idx.__str__()
# <class 'pandas.tseries.index.DatetimeIndex'>
# [2011-01-01, ..., 2011-01-03]
# Length: 3, Freq: D, Timezone: None

idx.__bytes__()
# <class 'pandas.tseries.index.DatetimeIndex'>
# [2011-01-01, ..., 2011-01-03]
# Length: 3, Freq: D, Timezone: None

# PeriodIndex ---------------------------------------------------------------
idx = pd.PeriodIndex(['2011-01-01', '2011-01-02', '2011-01-03'], freq='D')

print(idx)
# PeriodIndex([u'2011-01-01', u'2011-01-02', u'2011-01-03'], freq='D')

idx.__repr__()
# <class 'pandas.tseries.period.PeriodIndex'>
# freq: D
# [2011-01-01, ..., 2011-01-03]
# length: 3

idx.__unicode__()
# PeriodIndex([u'2011-01-01', u'2011-01-02', u'2011-01-03'], freq='D')

idx.__str__()
# PeriodIndex([u'2011-01-01', u'2011-01-02', u'2011-01-03'], freq='D')

idx.__bytes__()
# PeriodIndex([u'2011-01-01', u'2011-01-02', u'2011-01-03'], freq='D')