如何计算Pandas多列薪资数据的整体均值而非各列单独均值
解决方法
不需要先将12列合并为单列,有多种可以直接计算总均值的方案,具体如下:
- 方法1:直接对整个DataFrame的所有数值计算均值
pandas的mean()方法默认按列计算,你可以先把DataFrame转为一维数组后再求均值,结果完全符合将所有数据视为整体的需求:
total_mean = df.to_numpy().mean()
如果你的pandas版本较低,也可以用df.values.mean()实现同样效果。
- 方法2:堆叠为单列后计算均值
如果你需要顺带把所有数据转为单列也可以用stack方法,默认会自动忽略空值:
total_mean = df.stack().mean()
注意事项
不推荐用df.mean().mean()的方式计算,这种方式是先求每列的均值、再对列均值求平均,如果你的DataFrame里存在缺失值,两种计算逻辑的结果会不一致,只有当所有列的非空值数量完全相同时结果才会相等。
内容的提问来源于stack exchange,提问作者sendhelppls
相关产品推荐
相关产品推荐

