Я работаю с набором данных COVID-19, который выглядит следующим образом:
Дата | Город | Идентификатор города | Состояние | Расчетное население | Расчетное население_2019 | Подтвержденная ставка | Смертность | Новый Подтвержденный | Новые смерти |
---|---|---|---|---|---|---|---|---|---|
2020-03-17 | Рио-Бранко | 10002 | переменный ток | 413418 | 407319 | 0,72566 | 0,01 | 3 | 0 |
2020-03-17 | Манаус | 12330 | ЯВЛЯЮСЬ | 555550 | 555964 | 0,65433 | 0,005 | 5 | 3 |
Дата — мой указатель. У меня есть несколько городов с одинаковыми датами, как видно.
Учитывая, что у меня есть ежедневные точки данных, я пытаюсь передискретизировать свои данные так, чтобы у меня были ежемесячные точки. Я пытался использовать команду resample, но у меня возникли проблемы, потому что я хочу, чтобы некоторые из моих столбцов были одинаковыми и суммировались, а некоторые были средними. Более конкретно:
Как я могу создать код, способный различать, какие столбцы добавлять, какие брать среднее значение, и как я могу создать два новых столбца для стандартных отклонений Подтвержденных показателей и Коэффициентов смертности?
Вы должны изучить комбинацию groupby с .agg. Что-то вроде этого должно работать
df_grouped=df.groupby([df.index.month,'City ID']).agg({'Estimated Population':'mean','Estimated Population_2019':'mean','Confirmed Rate':['mean','std'],'Death Rate':['mean','std'],'New Confirmed':'sum','New Deaths':'sum'})
df_grouped.index.rename(['Month','City ID'],inplace=True)