pandas.DataFrame.to_timestamp#

DataFrame.to_timestamp(freq=None, how='start', axis=0, copy=<no_default>)[source] #

Cast PeriodIndex to DatetimeIndex of timestamps, at beginning of period.

This can be changed to the end of the period, by specifying how="e".

Parameters:
freqstr, default frequency of PeriodIndex

Desired frequency.

how{‘s’, ‘e’, ‘start’, ‘end’}

Convention for converting period to timestamp; start of period vs. end.

axis{0 or ‘index’, 1 or ‘columns’}, default 0

The axis to convert (the index by default).

copybool, default False

If False then underlying input data is not copied.

Note

The copy keyword will change behavior in pandas 3.0. Copy-on-Write will be enabled by default, which means that all methods with a copy keyword will use a lazy copy mechanism to defer the copy and ignore the copy keyword. The copy keyword will be removed in a future version of pandas.

You can already get the future behavior and improvements through enabling copy on write pd.options.mode.copy_on_write = True

Deprecated since version 3.0.0.

Returns:
DataFrame with DatetimeIndex

DataFrame with the PeriodIndex cast to DatetimeIndex.

See also

DataFrame.to_period

Inverse method to cast DatetimeIndex to PeriodIndex.

Series.to_timestamp

Equivalent method for Series.

Examples

>>> idx = pd.PeriodIndex(["2023", "2024"], freq="Y")
>>> d = {"col1": [1, 2], "col2": [3, 4]}
>>> df1 = pd.DataFrame(data=d, index=idx)
>>> df1
 col1 col2
2023 1 3
2024 2 4

The resulting timestamps will be at the beginning of the year in this case

>>> df1 = df1.to_timestamp()
>>> df1
 col1 col2
2023年01月01日 1 3
2024年01月01日 2 4
>>> df1.index
DatetimeIndex(['2023年01月01日', '2024年01月01日'], dtype='datetime64[ns]', freq=None)

Using freq which is the offset that the Timestamps will have

>>> df2 = pd.DataFrame(data=d, index=idx)
>>> df2 = df2.to_timestamp(freq="M")
>>> df2
 col1 col2
2023年01月31日 1 3
2024年01月31日 2 4
>>> df2.index
DatetimeIndex(['2023年01月31日', '2024年01月31日'], dtype='datetime64[ns]', freq=None)

This Page