pandas 第一次作业

 '''
作业1:
通过 Pandas 创建 学生成绩表的 excel 文件 。参考数据如下(可自己构建):
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]])
'''

 导入传说中的三驾马车
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt


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]])
# pd.DataFrame(data, index=行索引, columns=列索引)
stu_data = pd.DataFrame(data, index=stu_names, columns=courses)
# print(stu_data)
# 参数的意义 pd.DataFrame.to_excel(excel_writer :可以写路径,sheet_name :指定sheet名字)
pd.DataFrame.to_excel(stu_data, r"./file_folder/学生成绩表.xlsx", sheet_name="2021_1")

'''
再通过 Pandas 创建 选修成绩表的 excel 文件 。参考数据如下(可自己构建):
'''
ele_names = ["胡歌", "林更新", "金世佳", "丑娟"]
ele_courses = ['统计学', '日语']
ele_data = np.array([[85., np.nan], [np.nan, 69.], [np.nan, 95.], [80., np.nan]])

ele_new_data = pd.DataFrame(ele_data, index=ele_names, columns=ele_courses)
pd.DataFrame.to_excel(ele_new_data, r"./file_folder/选修课成绩表.xlsx", sheet_name="2021_1")

获得数据

read_stu_data = pd.read_excel(r"./file_folder/学生成绩表.xlsx", sheet_name="2021_1")
read_stu_data.info()
read_stu_data

展示数据:

<class 'pandas.core.frame.DataFrame'>
Index: 4 entries, 胡歌 to 丑娟
Data columns (total 5 columns):
语文        4 non-null int64
数学        4 non-null int64
英语        4 non-null int64
Python    4 non-null int64
体育        0 non-null float64
dtypes: float64(1), int64(4)
memory usage: 192.0+ bytes

Out[7]:

 语文数学英语Python体育
胡歌87749884NaN
林更新79696199NaN
金世佳84849466NaN
丑娟90607290NaN

 获取选修课数据:

read_ele_data = pd.read_excel(r"./file_folder/选修课成绩表.xlsx", sheet_name="2021_1")
read_ele_data
统计学日语
胡歌85.0NaN
林更新NaN69.0
金世佳NaN95.0
丑娟80.0Na
#因为体育课全被数学老师抢了,所以学生成绩表中的体育期末成绩全为空,将其删除。
new_stu_data = read_stu_data.drop(["体育"],axis=1)
new_stu_data

展示如下:

 语文数学英语Python统计学日语
胡歌8774988485.0NaN
林更新79696199NaN69.0
金世佳84849466NaN95.0
丑娟9060729080.0NaN
#可以观察出来,此时的数据每个人都是五门课程,现在需添加一列 总成绩 来求得每位学生的总成绩。(pandas中有df.sum(axis=1)来进行求每行的数据之和,并且gnan跳过。)

a=pd.DataFrame.sum(total_data,axis=1)
total_data.insert(6,"总成绩",a)
 语文数学英语Python统计学日语总成绩
胡歌8774988485.0NaN428.0
林更新79696199NaN69.0377.0
金世佳84849466NaN95.0423.0
丑娟9060729080.0NaN392.0

最后保存:

pd.DataFrame.to_excel(total_data, r"./file_folder/总表.xlsx", sheet_name="2021_1")

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值