#python #python_3x #pandas #dataframe #group_by
Как сгруппировать корректно данные? Имеется датафрейм со статусом завершенных заданий по каждому аналитику и типу задач: df1 ID Board Analyst Status Crea_d Fin_d 46258 RUCRA Ivanov open 2019-07-10 NaT 2345 RUCRA Ivanov close 2019-07-11 2019-07-11 46218 RUCRA Ivanov close 2019-07-11 2019-07-11 3087 RUCRA Sidorov open 2019-07-22 NaT 2367 BV Petrov open 2019-07-25 NaT 2985 GRADE Petrov close 2019-07-05 2019-07-05 20987 GRADE Ivanov close 2019-07-11 2019-07-12 2396 BV Sidorov open 2019-07-29 NaT Необходимо сгруппировать данные таким образом, чтобы было видно сколько аналитик выполнил и сколько еще невыполненных заданий по типам (Board) за определенный период (за день, неделю, месяц). grouped_df: Board Analyst Status Count RUCRA Ivanov open 1 RUCRA Ivanov close 2 RUCRA Sidorov open 1 BV Petrov open 1 GRADE Petrov close 1 GRADE Ivanov close 1 BV Sidorov open 1 Я что-то похожее сделал, но где-то нарушена логика, где не могу разобраться: grouped_df: = (df1.groupby(['Board','Analyst','Status', pd.Grouper(key='Fin_d', freq='M')], as_index=False)['ID'].count()) Просто дальше я хочу строить графики по каждому аналитику, сколько он по дням выполняет заданий (bars) с трендовой линией, но то ли из-за ошибки в коде или нарушения логики, ничего не выходит.
Ответы
Ответ 1
Если я правильно понял: In [5]: df1.groupby(["Board", "Analyst", "Status"]).size().reset_index(name="Count") Out[5]: Board Analyst Status Count 0 BV Petrov open 1 1 BV Sidorov open 1 2 GRADE Ivanov close 1 3 GRADE Petrov close 1 4 RUCRA Ivanov close 2 5 RUCRA Ivanov open 1 6 RUCRA Sidorov open 1 или так: In [11]: df1.groupby(["Board", "Analyst", "Status", pd.Grouper(key='Crea_d', freq='MS')]).size().reset_index(name="Count") Out[11]: Board Analyst Status Crea_d Count 0 BV Petrov open 2019-07-01 1 1 BV Sidorov open 2019-07-01 1 2 GRADE Ivanov close 2019-07-01 1 3 GRADE Petrov close 2019-07-01 1 4 RUCRA Ivanov close 2019-07-01 2 5 RUCRA Ivanov open 2019-07-01 1 6 RUCRA Sidorov open 2019-07-01 1
Комментариев нет:
Отправить комментарий