我有一个包含4列的数据框:id,color,flag_1和flag_2:
df = pd.DataFrame({'id': range(0,5),
'color': ['red', 'red', 'blue', 'blue', 'blue'],
'flag_1':[1, 0, 0, 0, 0],
'flag_2':[1, 1, 1, 1, 0]})
从这个问题的不同:与GROUPBY共有大熊猫百分比,我想通过组列的颜色,并得到总的百分比都,flag_1和flag_2。
结果应如下图所示:
color flag_1 flag_2
red 0.5 1
blue 0 0.67
我似乎无法弄清楚如何根据引用的问题(仅汇总一列)使代码适应我的需求。
尝试crosstab
:
m = df.drop("id", axis=1).melt("color")
pd.crosstab(m.color, m.variable, m.value, aggfunc="mean").rename_axis(None)
variable flag_1 flag_2
blue 0.0 0.666667
red 0.5 1.000000
坚持groupby:
df.groupby("color", sort=False).agg(flag1=("flag_1", "mean"), flag2=("flag_2", "mean"))
flag1 flag2
color
red 0.5 1.000000
blue 0.0 0.666667
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句