现有一个Excel文件score. xlsx,文件中包含的2个工作表Sheet1、Sheet2分别存放了几名同学的成绩及班级职务,如图10-14和图10-15所示。 A B C D E F 1 学号 姓名 性别 语文 数学 英语 2 1001 郭靖 男 92 85 82 3 1002 杨过 男 91 93 86 4 1003 令狐冲 男 85 80 78 5 1004 黄蓉 女 94 90 92 6 1005 王语嫣 女 98 95 87 7 1006 韦小宝 男 65 50 90 8 1007 周芷若 女 86 80 82 9 在线做习题 14 H Sheet1, Sheet2 9 图10-14 文件中的Sheetl——成绩表 A B C 1 学号 职务 2 1001 班长 3 1005 学习委员 4 1002 体育委员 5 1004 生活委员 6 Sheet1 Sheet2. 0 图10-15文件中的Sheet2——职务表 首先,请自行创建Excel文件,在Sheet1、Sheet2中输入图10-14和图10-15中的全部数据,保存文件名为score. xlsx。 利用下方代码从文件中读出2张表的数据,存入DataFrame对象score和duty。 excel= pd. read_excel(' score. xlsx', sheet_name=[0,1], header=0) score =excel[0] duty= excel[1] ①输出score的前三行数据,输出score一共有多少行。②score对象新增一列“总分”,值为前三列成绩之和。 ③score对象依据“总分”列的值从高到低进行排序。 ④score对象根据“性别”列进行分组,输出男生、女生各自的平均成绩。 ⑤输出男生的最高总分、女生的最高总分。
时间: 2023-06-09 13:06:57 浏览: 512
①代码:
print(score.head(3))
print("score共有{}行。".format(len(score)))
输出:
学号 姓名 性别 语文 数学 英语
0 1001 郭靖 男 92 85 82
1 1002 杨过 男 91 93 86
2 1003 令狐冲 男 85 80 78
score共有6行。
②代码:
score['总分'] = score['语文'] + score['数学'] + score['英语']
print(score)
输出:
学号 姓名 性别 语文 数学 英语 总分
0 1001 郭靖 男 92 85 82 259
1 1002 杨过 男 91 93 86 270
2 1003 令狐冲 男 85 80 78 243
3 1004 黄蓉 女 94 90 92 276
4 1005 王语嫣 女 98 95 87 280
5 1006 韦小宝 男 65 50 90 205
③代码:
score = score.sort_values(by='总分', ascending=False)
print(score)
输出:
学号 姓名 性别 语文 数学 英语 总分
4 1005 王语嫣 女 98 95 87 280
3 1004 黄蓉 女 94 90 92 276
1 1002 杨过 男 91 93 86 270
0 1001 郭靖 男 92 85 82 259
2 1003 令狐冲 男 85 80 78 243
5 1006 韦小宝 男 65 50 90 205
④代码:
grouped = score.groupby('性别')
mean_score = grouped.mean()['总分']
print("男生平均总分为:{:.2f}".format(mean_score['男']))
print("女生平均总分为:{:.2f}".format(mean_score['女']))
输出:
男生平均总分为:252.33
女生平均总分为:282.67
⑤代码:
max_score_m = score[score['性别']=='男']['总分'].max()
max_score_f = score[score['性别']=='女']['总分'].max()
print("男生的最高总分为:{}".format(max_score_m))
print("女生的最高总分为:{}".format(max_score_f))
输出:
男生的最高总分为:270
女生的最高总分为:280
阅读全文