относительнаядельта — добавить количество месяцев на основе значений столбца

Я хотел бы добавить «точные месяцы» к дате начала к дате начала, чтобы рассчитать дату окончания и поиграть с относительной дельтой. У меня есть следующее:

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['Дата начала'] в настоящее время имеет значение datetime64[ns], а df1['Месяцы'] имеет значение float64.

Конечный результат должен быть df1['Дата начала'] + .df1['Месяцы'] - 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]')

Очень ценю вашу помощь.


person EChan    schedule 18.02.2019    source источник


Ответы (1)