У меня есть следующий фрейм данных.
df = pd.DataFrame({
'id': [1, 2, 2, 2, 3, 3],
'date': ['2020-01-01', '2020-01-01', '2020-01-02', '2020-01-03', '2020-01-01', '2020-01-02'],
'budget': [100, 150, 200, 250, 200, 200]})
id date budget
0 1 2020-01-01 100
1 2 2020-01-01 150
2 2 2020-01-02 200
3 2 2020-01-03 250
4 3 2020-01-01 200
5 3 2020-01-02 200
Как эффективно преобразовать фрейм данных в новый фрейм со следующим выводом, если предположить, что сегодня это 2020-01-04
?
id total_budget budget_2_days_ago
0 1 100 NaN
1 2 600 200
2 3 400 200
def is_two_days_ago(date):
return datetime.date.today() - datetime.timedelta(days=2) == date
То, что я пробовал, - это создание информационного кадра, который сначала содержит уникальные идентификаторы, а затем ставит сумму и применяет функцию определения бюджета 2 дня go один за другим, но я не думаю, что это хороший способ.