Python, Pandas: Разбить период даты построчно
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Можно так:
df["дата отпуска"] = df.apply(lambda row: pd.date_range(start=row["отпуск с даты"], end=row["отпуск по дату"], freq="D"), axis=1)
res = df.explode("дата отпуска").set_index("дата отпуска").drop(columns=["отпуск с даты", "отпуск по дату"]).reset_index()
res = res[["Пользователь", "ID", "дата отпуска"]]
Теперь res:
Пользователь ID дата отпуска
0 Петя 111 2022-04-06
1 Петя 111 2022-04-07
2 Петя 111 2022-04-08
3 Петя 111 2022-04-09
4 Петя 111 2022-04-10
5 Петя 111 2022-04-11
6 Петя 111 2022-04-12
7 Вася 222 2022-06-01
8 Вася 222 2022-06-02
9 Вася 222 2022-06-03
10 Вася 222 2022-06-04
11 Вася 222 2022-06-05
