2021-1-23 Pandas 作业

通过 Pandas 创建 学生成绩表的 excel 文件 。参考数据如下(可自己构建):
在这里插入图片描述
因为体育课全被数学老师抢了,所以学生成绩表中的体育期末成绩全为空,将其删除。

学生成绩表.xlsx 中没有选修的数据,将 选修成绩表.xlsx 的数据添加到 学生成绩表 中。

可以观察出来,此时的数据每个人都是五门课程,现在需添加一列 总成绩 来求得每位学生的总成绩。(pandas中有df.sum(axis=1)来进行求每行的数据之和,并且gnan跳过。)

import numpy as np
import pandas as pd

stu_names = ["胡歌","林更新","金世佳","丑娟"]
courses = ['语文', '数学', '英语', 'Python', '体育']
data = np.array([[87., 74., 98., 84., np.nan],[79., 69., 61., 99., np.nan],[84., 84., 94., 66., np.nan],[90., 60., 72., 90., np.nan]])

# 随机创建,并形成一个4*5的数组
data = np.array(np.random.randint(0,100,20).reshape(4, 5))

# 用ndarray数组生成DataFrame
df = pd.DataFrame(data, index=stu_names, col=courses)


# 设置体育课成绩=0分
df["体育"] = 0

# 删除体育课的成绩
del df["体育"]

# 再通过 Pandas 创建 选修成绩表的 excel 文件 。参考数据如下(可自己构建):

ele_data = np.array([[85., np.nan],[np.nan, 69.],[np.nan, 95.],[80., np.nan]])

df_ele = pd.DataFrame(np.array(ele_data).reshape(4,2),
                           index=stu_names, 
                           col=["统计学", "日语"])
# 使用concat()方法将选修课成绩添加到df中,因为是横向添加,所以axis=1
df = pd.concat([df, df_ele], axis=1)

# 在df中添加一列用来计算总分
df["total points"] = df.sum(axis=1).astype('int')
print(df)

df.to_excel("学生成绩总表.xlsx")
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值