如何解决计算多个组的均值
我有一张桌子
Sex Value1 Value2 City
M 2 1 Berlin
W 3 5 Paris
W 1 3 Paris
M 2 5 Berlin
M 4 2 Paris
我想计算不同组的Value1
和Value2
的平均值。在我的原始数据集中,我有10个组变量(最多具有5个特征,如5个城市),在本示例中,我将其简化为Sex
和City
(2个特征)。结果应该像这样
AvgOverall AvgM AvgW AvgBerlin AvgParis
Value1 2,4 2,6 2 2 2,66
Value2 3,2 2,6 4 3 3,3
我熟悉group by
并尝试过
df.groupby('City').mean()
但是这里我们有一个问题,Sex
也进入了计算。有谁知道如何解决这个问题?预先感谢!
解决方法
您可以将2列分为2个数据帧,然后将concat
与数字列一起使用(不包括非数字):
df1 = df.groupby('City').mean().T
df2 = df.groupby('Sex').mean().T
df3 = pd.concat([df.mean().rename('Overall'),df2,df1],axis=1).add_prefix('Avg')
print (df3)
AvgOverall AvgM AvgW AvgBerlin AvgParis
Value1 2.4 2.666667 2.0 2.0 2.666667
Value2 3.2 2.666667 4.0 3.0 3.333333
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。