df = DataFrame.to_period(freq=None, axis=0, copy=None) idx = DatetimeIndex.to_period(freq=None) col = Timestamp.to_period(freq=None) s = Series.to_period(freq=None) s = Series.dt.to_period(freq=None)
freq=None
- частота периода PeriodIndex
.axis=0
- ось для преобразования (по умолчанию - индекс). copy=None
- если False
, то базовые входные данные не копируются.
Аргумент
copy
изменит поведение в pandas 3.0. Копирование при записи будет включено по умолчанию, а это означает, что все методы с аргументомcopy
будут использовать механизм отложенного копирования и игнорировать аргументcopy
. Ключевой аргументcopy
будет удален в будущей версииpandas
. Можно уже сейчас получить будущее поведение и улучшения, включив копирование при записиpd.options.mode.copy_on_write = True
DataFrame
имеющий PeriodIndex
.Метод DataFrame.to_period()
модуля pandas
преобразует DataFrame
с DatetimeIndex
в значения PeriodIndex
. По умолчанию преобразовывается индекс.
Метод DatetimeIndex.to_period()
преобразует DatetimeIndex
в значения PeriodIndex
.
Метод Timestamp.to_period()
преобразует значения Timestamp
в значения PeriodIndex
.
Метод Series.to_period()
преобразует Series
с DatetimeIndex
в значения PeriodIndex
.
Описание метода
Series.dt.to_period()
смотрите в материале "Доступ к методамdatetime
объектовSeries
/index
вpandas
"
DatetimeIndex.to_period()
>>> import pandas as pd idx = pd.to_datetime( [ "2021-03-31 00:00:00", "2022-05-31 00:00:00", "2023-08-31 00:00:00", ] ) >>> idx # DatetimeIndex(['2021-03-31', '2022-05-31', '2023-08-31'], dtype='datetime64[ns]', freq=None) >>> idx.to_period("M") # PeriodIndex(['2021-03', '2022-05', '2023-08'], dtype='period[M]')
Годовая периодичность
>>> idx.to_period("Y") # PeriodIndex(['2021', '2022', '2023'], dtype='period[Y-DEC]')
Timestamp.to_period()
>>> ts = pd.Timestamp('2020-03-14T15:32:52.192548651') >>> # Year end frequency >>> ts.to_period(freq='Y') # Period('2020', 'Y-DEC') # Периодичность на конец месяца >>> ts.to_period(freq='M') Period('2020-03', 'M') # Еженедельная частота >>> ts.to_period(freq='W') Period('2020-03-09/2020-03-15', 'W-SUN') # Частота окончания квартала >>> ts.to_period(freq='Q') Period('2020Q1', 'Q-DEC')
Series.to_period()
>>> idx = pd.DatetimeIndex(['2023', '2024', '2025']) >>> s = pd.Series([1, 2, 3], index=idx) >>> s # 2023-01-01 1 # 2024-01-01 2 # 2025-01-01 3 # dtype: int64 >>> s = s.to_period() >>> s # 2023 1 # 2024 2 # 2025 3 # Freq: Y-DEC, dtype: int64 # смотрим индекс >>> s.index # PeriodIndex(['2023', '2024', '2025'], dtype='period[Y-DEC]')