通过 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]])
再通过 Pandas 创建 选修成绩表的 excel 文件 。参考数据如下(可自己构建):
ele_names = [“胡歌”,“林更新”,“金世佳”,“丑娟”]
ele_courses = [‘统计学’, ‘日语’]
ele_data = np.array([[85., np.nan],[np.nan, 69.],[np.nan, 95.],[80., np.nan]])
练习2
读取两表数据,注意:此时需指定行索引为第一列。
练习3
• 因为体育课全被数学老师抢了,所以学生成绩表中的体育期末成绩全为空,将其删除。
• 学生成绩表.xlsx 中没有选修的数据,将 选修成绩表.xlsx 的数据添加到 学生成绩表 中。
• 可以观察出来,此时的数据每个人都是五门课程,现在需添加一列 总成绩 来求得每位学生的总成绩。(pandas中有df.sum(axis=1)来进行求每行的数据之和,并且gnan跳过。)
最终的数据如下:
再将该数据保存到 总表.xlsx 中
代码如下:
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]])
data_df = pd.DataFrame(data,index=stu_names,columns=courses)
print(data_df)
data_df.to_excel('/Users/zhongzhiyang/Desktop/homework.xlsx')
ele_names = ["胡歌","林更新","金世佳","丑娟"]
ele_courses = ['统计学', '日语']
ele_data = np.array([[85., np.nan],[np.nan, 69.],[np.nan, 95.],[80., np.nan]])
ele_data_df = pd.DataFrame(ele_data,index=ele_names,columns=ele_courses)
print(ele_data_df)
ele_data_df.to_excel('/Users/zhongzhiyang/Desktop/数据分析作业/homework2.xlsx')
def read_excel(name):
data2 = pd.read_excel(name,sheet_name=0)
print(data)
read_excel('homework.xlsx')
read_excel('homework2.xlsx')
data_df = data_df.drop(columns=['体育'])
data_df['统计学'] = ele_data_df['统计学']
data_df['日语'] = ele_data_df['日语']
Sum = data_df.sum(axis=1)
data_df['总成绩'] = Sum
结果如下: