热线电话:13121318867

登录
2020-04-27 阅读量: 1025
dataframe数据按照不同的维度计算均值,具体题目要求见正文。

求不同维度的均值:现有成绩表df:

df表是某班从8月到12月某一学科的成绩表,计算每位同学5个月的平均成绩,效果如下:

小明 89.8

小红 89.8

小王 89.4

dtype: float64

每个月份所有同学的平均成绩,

8月 90.00

9月 88.67

10月 92.67

11月 89.33

12月 87.67

dtype: float64

该学科五个月班级总的平均成绩,

89.67

要求最多保留两位小数。

解题思路:每位同学5个月的平均成绩实质是求每一列的均值,直接对df表调用mean()方法,默认是对列计算均值;

每个月的平均成绩实质是计算每一行的均值,作为DataFrame的方法,mean()方法可以选择沿着哪个轴计算均值,指定axis=1计算的是每行数据的均值,题目要求最多保留两位小数,计算均值后得到的数据类型是series,可以调用series的round方法设置精度;

计算5个月班级总的平均成绩,计算表中所有数据的均值,计算均值前需要把二维的表通过stack方法降维成一维,再计算均值得到的就是整个数据集的均值,得到一个浮点型数据,所以不能调用pandas中的方法,需要调用python原生函数round来控制精度。

具体代码如下:

import pandas as pd

df = pd.DataFrame({"小明":[90,86,93,91,89],"小红":[92,90,89,95,83],"小王":[88,90,96,82,91]}

,index = ["8月","9月","10月","11月","12月"]

)

df.mean()#计算每一列的均值

df.mean(1).round(2) #计算每一行的均值

round(df.stack().mean(),2) #计算所有数据的均值

0.0908
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子