Получение значений из агрегированной таблицы Pandas для выполнения ANOVA - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть следующий DataFrame нарушений парковки .: Data Frame

Я могу агрегировать и просматривать счет Violation_mod по season и year следующим образом: tickets_by_season_year = parking_data['season'].groupby([parking_data['Issue_Date_Time'].dt.year.rename('year'), parking_data['season'].rename('season')]) tickets_by_season_year.agg({'count'}).unstack() enter image description here Нажав tickets_by_season_year.agg({'count'}).unstack().columns, я получаю следующее:

MultiIndex(levels=[['count'], [1, 2, 3, 4]], labels=[[0, 0, 0, 0], [0, 1, 2, 3]], names=[None, 'season'])

Я хочу иметь возможность взять эту сводную таблицу и сделать ANOVA, чтобы увидеть, одинаковое ли среднее количество билетов в каждом сезоне.

Вот решение, которое у меня есть, и я чувствую, что оно очень громоздкое и есть более элегантное решение:

tickets_by_season= tickets_by_season_year.agg({'count'}).unstack().reset_index(drop=True).reindex() Что приводит к следующему (я пропустил бит кода, где я сопоставил номер сезона с именем):

enter image description here

tickets_by_season['count'].columns

И мы можем видеть следующие столбцы: Index(['Fall', 'Spring', 'Summer', 'Winter'], dtype='object', name='season')

Из которого я могу выполнять следующие задания:

Fall = tickets_by_season['count']['Fall'] Spring = tickets_by_season['count']['Spring'] Summer = tickets_by_season['count']['Summer'] Winter = tickets_by_season['count']['Winter']

И запустить ANOVA так:

stats.f_oneway(Fall.dropna(), Spring.dropna(), Summer.dropna(), Winter.dropna())

Это самое элегантное решение? Можно ли сделать это более аккуратно?

Заранее спасибо за любую помощь!

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