Изменить фрейм данных pandas с длинного на широкийPython

Программы на Python
Anonymous
Изменить фрейм данных pandas с длинного на широкий

Сообщение Anonymous »

Имейте фрейм данных в следующем формате

Код: Выделить всё

data = {'regions':["USA", "USA", "USA", "FRANCE", "FRANCE","FRANCE"],
'dates':['2024-08-03', '2024-08-10', '2024-08-17','2024-08-03', '2024-08-10', '2024-08-17'],
'values': [3, 4, 5, 7, 8,0],
}
df = pd.DataFrame(data)
regions     dates   values
0   USA     2024-08-03  3
1   USA     2024-08-10  4
2   USA     2024-08-17  5
3   FRANCE  2024-08-03  7
4   FRANCE  2024-08-10  8
5   FRANCE  2024-08-17  0
Нужно изменить этот df с длинного формата на широкий. Используйте самые последние даты в качестве текущей даты, а две другие даты будут датами с задержкой. Ожидаемый результат:

Код: Выделить всё

regions       dates       values_lag2     values_lag1  values
USA           2024-08-17  3               4             5
FRANCE        2024-08-17  7               8             0
В настоящее время я использую цикл for, чтобы вручную изменить формат. Просто интересно, есть ли более элегантный способ реализовать это. Спасибо

Подробнее здесь: https://stackoverflow.com/questions/790 ... ng-to-wide

Вернуться в «Python»