进阶查询统计
加载数据文件
pd_score = pd.read_excel("score.xlsx")
计算平均值
pd_score.mean(axis=1)
当列数一致的情况下,我们想将将平均成绩添加上去,我们可以这样写:
pd_score['平均成绩'] = pd_score.mean(axis=1)
其中,
mean(axis=1)
是计算每一行的平均值,mean(axis=0)
是计算每一列的平均值计算总和
pd_score.sum(axis=1)
同样可以将总成绩这一栏添加到表单里面:
pd_score["总成绩"] = pd_score.sum(axis=1)
选取最高值那项的信息
pd_score.iloc[pd_score['总成绩'].idxmax()] #将总成绩最高的同学所有信息选出
关于
iloc
和loc
去看上一篇文章分组计算
pd_score.loc[:,['性别','音乐']].groupby('性别').sum() #根据性别分组,计算出各个组别的总成绩
创建备份
pd_score_copy = pd_score.copy() #创建原始表的备份,使修改不会影响原始表
修改数据
pd_score_copy.loc[:,['数学']].apply(lambda x:x+2) #对选出结果中的每一个元素应用匿名函数,改变结果
当然,上面的操作我们仅仅是在我们刚才拷贝的数据上进行的操作,我们的需求是在原有的数据上进行操作,所以:
pd_score_copy['数学'] = pd_score_copy.loc[:,['数学']].apply(lambda x:x+2) #修改原始数据的值 `
统计
我们可以使用agg
来统计出我需要的值:pd_score_copy['体育'].agg(['max','min','mean','std']) #agg中填写系统中有的统计函数,agg函数可以一次计算出所有结果