Сейчас у меня есть строка кода, которую я использую, чтобы попытаться создать столбец, основанный на совокупной сумме данных timedelta между датами. Как бы то ни было, он не всегда правильно выполняет кумулятивную сумму, и я также получил предупреждение, что моя строка кода python не будет работать в будущем.
Исходный набор данных ниже:
ID CREATION_DATE TIMEDIFF EDITNUMB
8211 11/26/2019 13:00 1
8211 1/3/2020 9:11 37 days 20:11:09.000000000 1
8211 2/3/2020 14:52 31 days 05:40:57.000000000 1
8211 3/27/2020 15:00 53 days 00:07:49.000000000 1
8211 4/29/2020 12:07 32 days 21:07:23.000000000 1
Вот моя строка кода python:
df['RECUR'] = df.groupby(['ID']).TIMEDIFF.apply(lambda x: x.shift().fillna(1).cumsum())
В результате получается новый столбец «RECUR», который не суммирует кумулятивно правильно данные в столбце «TIMEDIFF»:
ID CREATION_DATE TIMEDIFF EDITNUMB RECUR
8211 11/26/2019 13:00 1 0 days 00:00:01.000000000
8211 1/3/2020 9:11 37 days 20:11:09.000000000 1 0 days 00:00:02.000000000
8211 2/3/2020 14:52 31 days 05:40:57.000000000 1 37 days 20:11:11.000000000
8211 3/27/2020 15:00 53 days 00:07:49.000000000 1 69 days 01:52:08.000000000
8211 4/29/2020 12:07 32 days 21:07:23.000000000 1 122 days 01:59:57.000000000
Что также вызывает это предупреждение:
FutureWarning: Passing integers to fillna is deprecated, will raise a TypeError in a future version. To retain the old behavior, pass pd.Timedelta(seconds=n) instead.
Любая помощь по этому поводу будет принята с благодарностью, общая сумма должна составлять 153 дня, начиная с 26.11.19, и правильно отображаться кумулятивно в Столбец RECUR.