pandas pct_change (), индексированный по дате с данными по странам дает неверный результат - PullRequest
0 голосов
/ 07 апреля 2020

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 ошибку .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...