【发布时间】:2019-07-11 18:15:26
【问题描述】:
我想将“确切月份”添加到开始日期到开始日期,以计算结束日期并且一直在使用 relativedelta。我有以下内容:
df1['Start Date'] = ['11/1/2018', '3/15/2019', NaN, '5/15/2019', '2/28/2017', NaN, '10/31/2018']
df1['Months'] = [12.0, 36.0, 15.0, 36.0, 12.0, 9.0, 5.0]
df1['Start Date'] 当前是 datetime64[ns] 而 df1['Months'] 是 float64。
最终结果应该是 df1['Start Date'] + .df1['Months'] - 1 天,但相对增量方面很重要,因为我想返回“确切月份”。 NaN 可以继续返回 NaN。
这是我尝试的计算:
df1['End_Date'] = df1['Effective_Date'].apply(lambda x: x + relativedelta(months = df1['Months'].astype(float))) - pd.DateOffset(days = 1)
我收到以下不知道如何解决的错误:
cannot convert the series to <class 'int'>
我尝试了以下方法无济于事:
df1['Months'].astype('timedelta64[D]')
非常感谢您的帮助。
【问题讨论】:
标签: pandas relativedelta