通过 Pandas 创建 学生成绩表的 excel 文件 。
import pandas as pd import numpy as np 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]]) table1=pd.DataFrame(data=data,index=stu_names,columns=courses) table1.to_excel('必修课.xlsx') ele_names = ["胡歌","林更新","金世佳","丑娟"] ele_courses = ['统计学', '日语'] ele_data = np.array([[85., np.nan],[np.nan, 69.],[np.nan, 95.],[80., np.nan]]) table2=pd.DataFrame(data=ele_data,index=ele_names,columns=ele_courses) table2.to_excel('选修课.xlsx') table3=pd.concat([table1,table2],axis=1) table3.to_excel('课程成绩表.xlsx')
读取两表数据,注意:此时需指定行索引为第一列。
import pandas as pd import numpy as np column=['姓名','语文','数学','英语','Python','体育','统计学','日语'] file01=pd.read_excel('课程成绩表.xlsx',names=column) print(file01)因为体育课全被数学老师抢了,所以学生成绩表中的体育期末成绩全为空,将其删除。 学生成绩表.xlsx 中没有选修的数据,将 选修成绩表.xlsx 的数据添加到 学生成绩表 中。 可以观察出来,此时的数据每个人都是五门课程,现在需添加一列 总成绩 来求得每位学生的总成绩。(pandas中有df.sum(axis=1)来进行求每行的数据之和,并且gnan跳过。)
import pandas as pd import numpy as np file01=pd.read_excel('课程成绩表.xlsx',names=column) file02=file01.drop(['体育'],axis=1) file02['总成绩']=file02.sum(axis=1)