我有一个数据框,其中有4个字段,响应者,女性,已婚和孩子我将其绘制为直方图。
import pandas as pd
data2= data1.groupby('Responder')
data3= data2['female','married','children'].mean()
data3.plot(kind='bar')
正如您在输出中看到的,它被分组了,这就是我想要的。我现在要做的唯一一件事就是将每个变量组合在一起。因此,例如,您有两个蓝色的女性条,第一个蓝色的是N,第二个是Y。然后,蓝色和蓝色的条为已婚,依此类推。
我需要这样做的语法是什么?
答案 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')
顺便说一句,我不确定mean
在这里是否正确,因为您的原始数据包含二进制计数。归一化和会更有意义吗?