Я пытаюсь создать пакетную диаграмму из pandas фрейма данных с двойной группой в нем.
Мой набор данных выглядит следующим образом:
# Create dataframe
input_data = pd.DataFrame(dict(
Team =['Team1', 'Team1', 'Team1', 'Team1', 'Team2', 'Team2', 'Team2', 'Team2', 'Team2', 'Team2'],
Category =['I', 'I', 'II', 'II', 'I', 'I', 'I', 'II', 'II', 'II'],
Accepted =[0, 1, 1, 1, 0, 0, 1, 1, 0, 0]))
# Create column Denied, which is the inverse of Accepted
input_data['Denied'] = 1 - input_data['Accepted']
print("Shape of input_data: ", input_data.shape)
print(input_data)
Таким образом, фрейм данных выглядит следующим образом это:
Shape of input_data: (10, 4)
Team Category Accepted Denied
0 Team1 I 0 1
1 Team1 I 1 0
2 Team1 II 1 0
3 Team1 II 1 0
4 Team2 I 0 1
5 Team2 I 0 1
6 Team2 I 1 0
7 Team2 II 1 0
8 Team2 II 0 1
9 Team2 II 0 1
Короче говоря, у меня есть две команды обслуживания клиентов, и каждая команда обрабатывает обе категории запросов (скажем, я запрос на возврат, а II - запрос на отправку другой статьи). ). Запрос может быть либо принят, либо отклонен. Для каждого запроса в моем фрейме данных есть одна строка.
Я хотел бы создать такую визуализацию, например: Пример двойной групповой диаграммы и гистограммы с накоплением
Так что я хотел бы иметь один столбец (Принято и Отклонено) для каждой категории на группу.
Я попытался с помощью этой группы получить что-то вроде сводной сводной таблицы:
pivot_df = input_data.groupby(["Team", "Category"]).sum()
print(pivot_df)
И это дает мне:
Accepted Denied
Team Category
Team1 I 1 1
II 2 0
Team2 I 1 2
II 1 2
На данный момент наилучшие усилия по созданию гистограммы с накоплением:
grouped_df.plot.bar(stacked=True, rot = 0, width = 0.7)
. Двойная групповая и линейная гистограмма с максимальным усилием:
Однако я не могу понять, как представить его в виде диаграммы рядом друг с другом .
Кто-нибудь знает, как это сделать? Ваша помощь очень ценится.