построение гистограммы на столбцах - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть фрейм данных Pandas, который выглядит следующим образом:

ID  Management   Administrative
1      1              2
3      2              1
4      3              3 
10     1              3

по существу, 1-3 - это оценка низкого среднего или высокого.Мне нужна столбчатая диаграмма с накоплением, имеющая Управление и Администрация по оси X и состав из 1,2,3 каждого столбца в процентах.

например, если бы было только 4 записи, как указано выше, 1 будет составлять50% высоты, 2 - 25%, а 3 - 25% высоты панели управления.Ось Y поднимется до 100%.

Надеюсь, это имеет смысл.Трудно объяснить, но если неясно, желаю уточнить дальше!

1 Ответ

0 голосов
/ 21 ноября 2018

Вам нужно будет объединить несколько операций: сначала melt ваш набор данных, чтобы переместить Department в качестве новой переменной, после этого вы можете groupby Department и Rating до count числаиз идентификаторов, которые попадают в эту корзину, затем вы groupby снова на Department, чтобы рассчитать проценты.Наконец, вы можете plot свой столбчатый график:

df4.melt().rename(columns={'variable':'Dept', 'value':'Rating'}
    ).query('Dept!="ID"'
    ).groupby(['Dept','Rating']).size(
    ).rename('Count'
    ).groupby(level=0).apply(lambda x: x/sum(x)
    ).unstack().plot(kind='bar', stacked=True)

enter image description here

...