Скользящая средняя для вопроса python - PullRequest
0 голосов
/ 21 апреля 2020

Я просматриваю данные о короне из NY Times, которые можно найти здесь: https://raw.githubusercontent.com/nytimes/covid-19-data/master/us-counties.csv

И открыт для всех.

Набор данных настроен так:

df = pd.read_csv('https://raw.githubusercontent.com/nytimes/covid-19-data/master/us-counties.csv')
df2 = df.copy()
df2 = df2.set_index('date')
df2['cases_lagged'] = df2.groupby(['county', 'state'])['cases'].shift()
df2[df2['fips']== 34041.0].head(10)

Я надеялся, что смогу создать столбец скользящего среднего таким же образом, используя оператор groupby вместе с командой .rolling () из pandas для составления скользящей средней за 7 и 14 дней для данных, но она не работает.

Я пробовал это двумя разными способами:

#way 1
df2['moving_avg'] = df2.groupby(['county', 'state']).iloc[:4].rolling(window = 7).mean()

#way 2
df2['moving_avg'] = df2.groupby(['county', 'state'])['cases'].rolling(window = 7).mean()

И ни один из них здесь не работает.

Любые мысли о том, как составить скользящее среднее для каждого округа в каждом штате без необходимости разбивать каждый округ на свой собственный df для его работы? Спасибо

1 Ответ

0 голосов
/ 22 апреля 2020

Когда я запустил его со всеми данными, я завершил его, потому что он работал в течение длительного времени. Мы ограничили пробег до c округов. Я не уверен, что думаю, что достиг желаемого результата.

los = df2[(df2['county'] == 'Los Angeles') & (df2['state'] == 'California')]
los['moving_avg'] = los[['county', 'state', 'cases']].groupby(['county', 'state'], group_keys=False).rolling(window = 7).mean()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...