как изменить порядок GROUPBY в гистограмме? - PullRequest
0 голосов
/ 03 марта 2019

У меня есть фрейм данных с четырьмя полями: Ответчик , женщина , женат и дети , которые я построил какгистограмма.

import pandas as pd
data2= data1.groupby('Responder')
data3= data2['female','married','children'].mean()
data3.plot(kind='bar') 

Example of data

Как вы можете видеть в выводе, он был сгруппирован, что я и хотел.Единственное, что я хочу сейчас сделать, это просто сгруппировать все переменные.Так, например, у вас будет две синие полосы для женщина , первая для N и вторая для Y. Затем, рядом с этим, столбцы N и Y для женат и т. Д.

Какой синтаксис мне нужен для этого?

Histogram Output

1 Ответ

0 голосов
/ 03 марта 2019

При построении DataFrame каждый столбец становится записью легенды, а каждая строка становится категорией горизонтальной оси.

# Example data (different from yours):
df = pd.DataFrame({'Responder': ['Y', 'N', 'N', 'Y', 'Y', 'N', 'Y', 'N'],
                   'female': [0, 1, 1, 0, 1, 1, 0, 1], 
                   'married': [0, 1, 1, 1, 1, 0, 0, 1], 
                   'children': [0, 1, 0, 1, 1, 0, 1, 0]})

g = df.groupby('Responder')
res = g.mean().T
res
Responder     N     Y
female     1.00  0.25
married    0.75  0.50
children   0.25  0.75

res.plot(kind='bar')

Bar plot with swapped x-axis levels

ПоКстати, я не уверен, что mean является правильным выбором, поскольку ваши исходные данные состоят из двоичных чисел.Будет ли нормализованная сумма иметь больше смысла?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...