使用 pandas dateoffset 并向前推进 num_years由一列给出

问题描述

我有一个包含日期时间列“Date_Begin”的数据框。我还有另一列“Years_to_add”。我想计算第三列,其中“DateBegin”按“years_to_add”列中的年数向前推进。我想避免在一年内使用 365.25 之类的近似值。我只想添加日历意义上的年数(我知道将一年添加到 2 月 29 日会出现问题)。

在我的 Pandas 版本中,我不能使用年份作为 timedelta(不再支持),所以我使用的是 DateOffset 方法

我的语法不正确。根据 here 的建议,我尝试了以下方法

df["begin_date"] + pd.DateOffset(years=int(df["years_to_add"]))

df["begin_date"] + df["years_to_add"].apply(pd.DateOffset.years)

解决方法

只需将其作为 lambda 函数传递

df["begin_date"] + df["years_to_add"].apply(lambda y: pd.DateOffset(years=y))