pandas версия: 0.24.2
Я пытаюсь найти показатель роста по дате для каждой уникальной группы (страны). Мои данные выглядят так:
'' '
date country metric1
2020-01-03 AD 45793
2020-03-28 US 13254524
2020-02-04 HT 224126
2020-02-04 AQ 106564
2020-01-11 LI 69168
2020-01-02 AD 47855
2020-03-23 MW 45795
2020-03-18 GM 38205
2020-03-06 CI 488755
' ''
Если я запускаю:
df['metric1_change'] = df.groupby(['country'])['metric1'].pct_change()
Результат неверный и pct_change не относится к предыдущим значениям. Смотрите пример результата:
date country metric1 metric1_change
2020-01-01 AD 41550 0.048289
2020-01-02 AD 47855 0.184149
2020-01-03 AD 45793 0.255084
Первой датой является 2020-01-01, поэтому процентное изменение там должно быть уже NaN, а остальные абсолютно неверны.
Если я сортирую раньше с:
df.sort_values(by=['country','date'])
Я также не получаю правильный вывод:
date country metric1 metric1_change
2020-01-01 AD 41550 0.046916
2020-01-02 AD 47855 0.197273
2020-01-03 AD 45793 0.674088
Есть ли у кого-нибудь опыт? с этим?
Я видел этот вопрос Pandas изменение groupby и pct не возвращает ожидаемого значения , но применение мне не помогает, и я думаю, что я делаю более основательную c ошибку .