在日期列中添加月列



我正在使用包含下一列的数据框架

DATE       Months  New_Date
2020-07-03    1    2020-08-01
2022-05-06    6    2022-11-01
2020-06-23    4    2020-10-01

我需要将列'months'中的值(months)添加到列date中,并获得一个新的日期。我一直在研究并找到一些这样的解决方案

self.df['New_Date'] = (
self.df["DATE"].values.astype("datetime64[M]") 
+ self.df["Months"].values.astype("timedelta64[M]")
)

但是正如你所看到的,我得到了正确的月份,但是日期是那个月的第一天,而不是日期的第一天。

我试着不使用apply &抵消或应用&因为我认为我的脚本的效率不会很好。所以我想知道是否存在一种方法来使用relativedelta或offset不使用应用(可能矢量化,但我不知道如何),或者如果你知道一个不同的方法来获得正确的结果。

提前感谢,我真的很感谢你的帮助!

您可能正在寻找:

df['DATE'] = pd.to_datetime(df['DATE'])
tdf = np.vectorize(lambda x:np.timedelta64(x,'M'))
df['NewDate'] = (df['DATE'] + tf(df['Months'])).dt.date

相关内容

  • 没有找到相关文章