#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
Комментариев нет:
Отправить комментарий