如何更改直方图中的GROUPBY顺序?

时间:2019-03-02 21:02:22

标签: python pandas histogram

我有一个数据框,其中有4个字段,响应者女性已婚孩子我将其绘制为直方图。

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

Example of data

正如您在输出中看到的,它被分组了,这就是我想要的。我现在要做的唯一一件事就是将每个变量组合在一起。因此,例如,您有两个蓝色的女性条,第一个蓝色的是N,第二个是Y。然后,蓝色和蓝色的条为已婚,依此类推。

我需要这样做的语法是什么?

Histogram Output

1 个答案:

答案 0 :(得分:2)

绘制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在这里是否正确,因为您的原始数据包含二进制计数。归一化和会更有意义吗?