pandas_VS_Excel统计纵向与横向统计总分最大最小

2022-10-25 14:00:01 浏览数 (1)

pandas_VS_Excel统计纵向与横向统计总分最大最小

【问题】

【要求】

1.在表格的右边插入列“总分”“平均分”“最高”“最低”,横向计算每个人的各项指标

2.在格格的下面插入行“合计”“最高分”“最低分”纵向计算所有人的各项指标

3.输出Excel文件

【代码】

代码语言:javascript复制
# -*- coding:UTF-8 -*-
"""
纵向计算和,平均
横向统计和,最大傎,最小值
"""
import pandas aspd
d=pd.read_excel('pandas_VS_Excel统计纵向与横向统计总分最大最小.xlsx')
print(d)
temp=d[['语文','数学','英语']]
print(temp)
print(temp.sum(axis=1))
d['总分']=temp.sum(axis=1)
d['平均分']=temp.mean(axis=1)
d['最高']=temp.max(axis=1)
d['最低']=temp.min(axis=1)
col_max=d[['语文','数学','英语','总分','平均分','最高','最低']].max()
col_max['姓名']='最高分'
#g_max=d['']
col_sum=d[['语文','数学','英语','总分','平均分','最高','最低']].sum()
col_sum['姓名']='分数合计'
col_min=d[['语文','数学','英语','总分','平均分','最高','最低']].min()
col_min['姓名']='最低分'
print(col_max)
d=d.append(col_sum,ignore_index=True)
d=d.append(col_max,ignore_index=True)
d=d.append(col_min,ignore_index=True)
d.to_excel('pandas_VS_Excel统计纵向与横向统计总分最大最小_out.xlsx',index=False)
print("done")

【效果图】

【说明】

1.Sum.max,min的统计默认是纵向的,如果要横向我们要加axis=1

2.计算的过程中,先把要统计的数据的列存入到一个temp中,再用相关的函数进行计算

3.pandas.append用法

DataFrame.append(other,ignore_index=False, verify_integrity=False, sort=None)

功能说明:向dataframe对象中添加新的行,如果添加的列名不在dataframe对象中,将会被当作新的列进行添加

other:DataFrame、series、dict、list这样的数据结构

ignore_index:默认值为False,如果为True则不使用index标签

verify_integrity :默认值为False,如果为True当创建相同的index时会抛出ValueError的异常

sort:boolean,默认是None,该属性在pandas的0.23.0的版本才存在。

因为“行数据”的加入中如果没有列标题的会用NaN,所以特别用了

Col_sum[‘姓名’]=‘分数合计’

======今天学习至此======

0 人点赞