diff --git a/pandas/core/arrays/datetimes.py b/pandas/core/arrays/datetimes.py index aee0d4fecd6ae..ec69d9ccbdd90 100644 --- a/pandas/core/arrays/datetimes.py +++ b/pandas/core/arrays/datetimes.py @@ -1119,14 +1119,14 @@ def to_period(self, freq=None) -> PeriodArray: ... "2000-08-31 00:00:00"])) >>> df.index.to_period("M") PeriodIndex(['2000-03', '2000-05', '2000-08'], - dtype='period[M]', freq='M') + dtype='period[M]') Infer the daily frequency >>> idx = pd.date_range("2017-01-01", periods=2) >>> idx.to_period() PeriodIndex(['2017-01-01', '2017-01-02'], - dtype='period[D]', freq='D') + dtype='period[D]') """ from pandas.core.arrays import PeriodArray diff --git a/pandas/core/arrays/period.py b/pandas/core/arrays/period.py index 101209be30b40..c2323c8697eee 100644 --- a/pandas/core/arrays/period.py +++ b/pandas/core/arrays/period.py @@ -564,15 +564,15 @@ def asfreq(self, freq=None, how: str = "E") -> PeriodArray: >>> pidx = pd.period_range('2010-01-01', '2015-01-01', freq='A') >>> pidx PeriodIndex(['2010', '2011', '2012', '2013', '2014', '2015'], - dtype='period[A-DEC]', freq='A-DEC') + dtype='period[A-DEC]') >>> pidx.asfreq('M') PeriodIndex(['2010-12', '2011-12', '2012-12', '2013-12', '2014-12', - '2015-12'], dtype='period[M]', freq='M') + '2015-12'], dtype='period[M]') >>> pidx.asfreq('M', how='S') PeriodIndex(['2010-01', '2011-01', '2012-01', '2013-01', '2014-01', - '2015-01'], dtype='period[M]', freq='M') + '2015-01'], dtype='period[M]') """ how = libperiod.validate_end_alias(how) diff --git a/pandas/core/indexes/period.py b/pandas/core/indexes/period.py index 136843938b683..fb51f4ba08bfe 100644 --- a/pandas/core/indexes/period.py +++ b/pandas/core/indexes/period.py @@ -153,11 +153,11 @@ class PeriodIndex(DatetimeIndexOpsMixin): -------- >>> idx = pd.PeriodIndex(year=[2000, 2002], quarter=[1, 3]) >>> idx - PeriodIndex(['2000Q1', '2002Q3'], dtype='period[Q-DEC]', freq='Q-DEC') + PeriodIndex(['2000Q1', '2002Q3'], dtype='period[Q-DEC]') """ _typ = "periodindex" - _attributes = ["name", "freq"] + _attributes = ["name"] # define my properties & methods for delegation _is_numeric_dtype = False @@ -636,7 +636,7 @@ def period_range( PeriodIndex(['2017-01', '2017-02', '2017-03', '2017-04', '2017-05', '2017-06', '2017-07', '2017-08', '2017-09', '2017-10', '2017-11', '2017-12', '2018-01'], - dtype='period[M]', freq='M') + dtype='period[M]') If ``start`` or ``end`` are ``Period`` objects, they will be used as anchor endpoints for a ``PeriodIndex`` with frequency matching that of the @@ -645,7 +645,7 @@ def period_range( >>> pd.period_range(start=pd.Period('2017Q1', freq='Q'), ... end=pd.Period('2017Q2', freq='Q'), freq='M') PeriodIndex(['2017-03', '2017-04', '2017-05', '2017-06'], - dtype='period[M]', freq='M') + dtype='period[M]') """ if com.count_not_none(start, end, periods) != 2: raise ValueError( diff --git a/pandas/tests/indexes/datetimelike.py b/pandas/tests/indexes/datetimelike.py index a8f8406e24fef..70156092eeabe 100644 --- a/pandas/tests/indexes/datetimelike.py +++ b/pandas/tests/indexes/datetimelike.py @@ -44,7 +44,9 @@ def test_str(self, simple_index): if hasattr(idx, "tz"): if idx.tz is not None: assert idx.tz in str(idx) - if hasattr(idx, "freq"): + if isinstance(idx, pd.PeriodIndex): + assert f"dtype='period[{idx.freqstr}]'" in str(idx) + else: assert f"freq='{idx.freqstr}'" in str(idx) def test_view(self, simple_index): diff --git a/pandas/tests/indexes/period/test_formats.py b/pandas/tests/indexes/period/test_formats.py index 7d054a7af4a4d..bfd83f1360671 100644 --- a/pandas/tests/indexes/period/test_formats.py +++ b/pandas/tests/indexes/period/test_formats.py @@ -62,40 +62,31 @@ def test_representation(self, method): idx9 = pd.period_range("2013Q1", periods=3, freq="Q") idx10 = PeriodIndex(["2011-01-01", "2011-02-01"], freq="3D") - exp1 = "PeriodIndex([], dtype='period[D]', freq='D')" + exp1 = "PeriodIndex([], dtype='period[D]')" - exp2 = "PeriodIndex(['2011-01-01'], dtype='period[D]', freq='D')" + exp2 = "PeriodIndex(['2011-01-01'], dtype='period[D]')" - exp3 = "PeriodIndex(['2011-01-01', '2011-01-02'], dtype='period[D]', freq='D')" + exp3 = "PeriodIndex(['2011-01-01', '2011-01-02'], dtype='period[D]')" exp4 = ( "PeriodIndex(['2011-01-01', '2011-01-02', '2011-01-03'], " - "dtype='period[D]', freq='D')" + "dtype='period[D]')" ) - exp5 = ( - "PeriodIndex(['2011', '2012', '2013'], dtype='period[A-DEC]', " - "freq='A-DEC')" - ) + exp5 = "PeriodIndex(['2011', '2012', '2013'], dtype='period[A-DEC]')" exp6 = ( "PeriodIndex(['2011-01-01 09:00', '2012-02-01 10:00', 'NaT'], " - "dtype='period[H]', freq='H')" + "dtype='period[H]')" ) - exp7 = "PeriodIndex(['2013Q1'], dtype='period[Q-DEC]', freq='Q-DEC')" + exp7 = "PeriodIndex(['2013Q1'], dtype='period[Q-DEC]')" - exp8 = "PeriodIndex(['2013Q1', '2013Q2'], dtype='period[Q-DEC]', freq='Q-DEC')" + exp8 = "PeriodIndex(['2013Q1', '2013Q2'], dtype='period[Q-DEC]')" - exp9 = ( - "PeriodIndex(['2013Q1', '2013Q2', '2013Q3'], " - "dtype='period[Q-DEC]', freq='Q-DEC')" - ) + exp9 = "PeriodIndex(['2013Q1', '2013Q2', '2013Q3'], dtype='period[Q-DEC]')" - exp10 = ( - "PeriodIndex(['2011-01-01', '2011-02-01'], " - "dtype='period[3D]', freq='3D')" - ) + exp10 = "PeriodIndex(['2011-01-01', '2011-02-01'], dtype='period[3D]')" for idx, expected in zip( [idx1, idx2, idx3, idx4, idx5, idx6, idx7, idx8, idx9, idx10],