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. freqlink | 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.