Pandas DataFrame | to_period method
Start your free 7-days trial now!
Pandas DataFrame.to_period(~)
method converts the source DataFrame's DatetimeIndex
to PeriodIndex
.
Parameters
1. freq
link | string
| optional
The frequency to assign to the new PeriodIndex
. By default, the frequency is inferred from DatetimeIndex
.
2. axis
| int
or string
| optional
Whether to convert the row index or the column index:
Axis | Description |
---|---|
| Convert the row index. |
| Convert the column index. |
By default, axis=0
.
3. copy
| boolean
| optional
If
True
, then a new DataFrame is returned. Modifying this DataFrame will not mutate the source DataFrame, and vice versa.If
False
, then no new DataFrame is created - modifying the returned DataFrame will mutate the source DataFrame, and vice versa.
By default, copy=True
.
Return Value
A DataFrame
with PeriodIndex
.
Examples
Basic usage
Consider the following DataFrame with a DatetimeIndex
:
date_index = pd.date_range("2020/12/25", periods=3)df = pd.DataFrame({"A":[2,3,4],"B":[5,6,7]}, index=date_index)df
A B2020-12-25 2 52020-12-26 3 62020-12-27 4 7
To convert the index from DatetimeIndex
to PeriodIndex
:
df_period = df.to_period()df_period
A B2020-12-25 2 52020-12-26 3 62020-12-27 4 7
To confirm that the index is now PeriodIndex
:
df_period.index
PeriodIndex(['2020-12-25', '2020-12-26', '2020-12-27'], dtype='period[D]', freq='D')
Specifying freq parameter
Consider the same df
as above with a DatetimeIndex
:
date_index = pd.date_range("2020/12/25", periods=3)df = pd.DataFrame({"A":[2,3,4],"B":[5,6,7]}, index=date_index)df
A B2020-12-25 2 52020-12-26 3 62020-12-27 4 7
To convert the index from DatetimeIndex
to PeriodIndex
with a frequency of "M"
(month):
df_period = df.to_period(freq="M")df_period
A B2020-12 2 52020-12 3 62020-12 4 7
Notice how the day-unit has been stripped away since the frequency is now set to months.