Я новичок в Python, и теперь у меня есть фрейм данных (с именем df), отсортированный по идентификатору, id_number и contract_year_month в таком порядке:
**identifier id_number contract_year_month collection_year_month**
K001 1 2018-01-03 2018-01-09
K001 1 2018-01-08 2018-01-10
K001 2 2018-01-01 2018-01-05
K001 2 2018-01-15 2018-01-18
K002 4 2018-01-04 2018-01-07
K002 4 2018-01-09 2018-01-15
и хотел бы добавить столбец с именем «date_difference», который состоит из contract_year_month минус collection_year_month из предыдущей строки на основе идентификатора и id_number (например, 2018-01-08 минус 2018-01-09),
так что df будет:
**identifier id_number contract_year_month collection_year_month date_difference**
K001 1 2018-01-03 2018-01-09
K001 1 2018-01-08 2018-01-10 -1
K001 2 2018-01-01 2018-01-05
K001 2 2018-01-15 2018-01-18 10
K002 4 2018-01-04 2018-01-07
K002 4 2018-01-09 2018-01-15 2
Я уже преобразовал тип столбцов contract_year_month и collection_year_month в datetime и попытался работать с простой функцией shift или iloc, но ни один из них не работает.
df["date_difference"] = df.groupby(["identifier", "id_number"])["contract_year_month"]
Есть ли способ использовать groupby для получения разницы между текущим значением строки и предыдущим значением строки в другом столбце, разделенных двумя идентификаторами? (Я искал час, но не смог найти подсказки ...) Буду искренне признателен, если вы, ребята, дадите несколько советов.