Pandas第1次作业

Pandas第一次作业

任务目标:

1,创建一个四行五列的DataFrame,行索引为学生姓名,列索引为学科名称,内容为学生在各学科中取得的成绩;
2,因为数学老师把体育课都占了,导致体育课没有成绩。先将体育课成绩都设为0,然后删除该列;
3,部分学生选修了统计学和日语这两门课程,要求创建一个新的DataFrame,用来保存选修课的成绩;
4,将选修课成绩与原DataFrame合并,并计算该学生在本学期的总成绩。

代码主要涉及DataFrame的创建、修改、删除、合并。

# -*- coding: utf-8 -*-
"""
Created on Sun Jan 24 17:15:50 2021

@author: 清弦墨客(聆听)
"""
import numpy as np
import pandas as pd

stu_names = ["林更新", "胡歌", "金世佳", "丑娟"]
stu_subjuects = ["Chinese", "Math", "English", "Programming", "Physics"]

# 各科成绩随机创建,并形成一个4*5的数组
data = np.array(np.random.randint(50,100,20).reshape(4, 5))
# 用ndarray数组生成DataFrame
df = pd.DataFrame(data, index=stu_names, columns=stu_subjuects)
#print(df)

# 将体育课成绩都设为0分
df["Physics"] = 0
#print(df)

# 删除体育课的成绩
del df["Physics"]
#print(df)

# 用列表创建学生选修成绩表,其实转换为ndarray也是一样的,形成一个4*2的数组再转换为DataFrame
# 用字典也可以创建,不过稍微麻烦点,这里就不展示了。需要注意的是,使用字典创建df时,key对应列名。
elective = [[85, np.nan, np.nan, 80],[np.nan, 69, 95, np.nan]]
df_elective = pd.DataFrame(np.array(elective).reshape(4,2),
                           index=stu_names, 
                           columns=["Statistics", "Japanese"])
#print(df_elective)

# 使用concat()方法将选修课成绩添加到df中,因为是横向添加,所以axis=1
df = pd.concat([df, df_elective], axis=1)
#print(df)

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

代码最终结果:

     Chinese  Math  English  Programming  Statistics  Japanese  total points
林更新       96    64       82           80        85.0       NaN           407
胡歌        72    96       60           63         NaN      80.0           371
金世佳       87    68       98           72         NaN      69.0           394
丑娟        98    60       83           97        95.0       NaN           433
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清弦墨客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值