Как создать пакетную диаграмму с «двойной группой» в python - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь создать пакетную диаграмму из 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 - запрос на отправку другой статьи). ). Запрос может быть либо принят, либо отклонен. Для каждого запроса в моем фрейме данных есть одна строка.

Я хотел бы создать такую ​​визуализацию, например: Пример двойной групповой диаграммы и гистограммы с накоплением

enter image description here

Так что я хотел бы иметь один столбец (Принято и Отклонено) для каждой категории на группу.

Я попытался с помощью этой группы получить что-то вроде сводной сводной таблицы:

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)

. Двойная групповая и линейная гистограмма с максимальным усилием:

enter image description here

Однако я не могу понять, как представить его в виде диаграммы рядом друг с другом .

Кто-нибудь знает, как это сделать? Ваша помощь очень ценится.

...