pandasの日付の列に年を追加する方法 質問する

pandasの日付の列に年を追加する方法 質問する

私はパンダデータフレームの日付の列に年を追加しようとしていますが、使用するとpd.to_timedelta追加の時間と分が得られます。更新された時間を取得して時間を切り捨てることはできますが、正確に年を追加する方法があるはずです。私の試みは次のとおりです。

import pandas as pd
dates = pd.DataFrame({'date':['20170101','20170102','20170103']})
dates['date'] = pd.to_datetime(dates['date'], format='%Y%m%d')
dates['date2'] = dates['date'] +  pd.to_timedelta(1, unit='y')
dates

結果:

Out[1]: 
    date        date2
0   2017-01-01  2018-01-01 05:49:12
1   2017-01-02  2018-01-02 05:49:12
2   2017-01-03  2018-01-03 05:49:12

05:49:12 HH:mm:ss を追加せずに年を追加するにはどうすればよいですか?

ベストアンサー1

In [99]: dates['date'] + pd.offsets.DateOffset(years=1)
Out[99]:
0   2018-01-01
1   2018-01-02
2   2018-01-03
Name: date, dtype: datetime64[ns]

閏年チェック:

In [100]: pd.to_datetime(['2011-02-28', '2012-02-29']) + pd.offsets.DateOffset(years=1)
Out[100]: DatetimeIndex(['2012-02-28', '2013-02-28'], dtype='datetime64[ns]', freq=None)

おすすめ記事