Python实现大学绩点计算——利用pandas对excel处理
pandas处理excel
Python中有许多读写与修改excel表格的方式,例如xlrd、openpy、pandas等等。而得益于pandas独有的dataframe数据类型,能够对读写进的excel表格进行各种数学统计与运算操作。下面介绍pandas对excel表格读写的几种基本操作。
pandas读取excel
import pandas as pd
from pandas import DataFrame
file_path = r'D:\data.xls'
df = pd.read_excel(file_path, sheet_name = "Sheet1")
读取进来的数据以一种类似于excel表格的方式进行存储,如果对数据进行打印,你就可以清晰的看到dataframe中的数据种类、格式等重要信息,例如:
姓名 学分 绩点 Unnamed: 3 Unnamed: 8 Unnamed: 9 Unnamed: 10 Unnamed: 11
0 张三 0.25 5.0 NaN ... NaN NaN NaN 0.0
1 张三 3.00 4.5 NaN ... NaN NaN NaN NaN
2 张三 4.00 3.1 NaN ... NaN NaN NaN NaN
3 张三 3.00 4.0 NaN ... NaN NaN NaN NaN
4 张三 1.00 5.0 NaN ... NaN NaN NaN NaN
5 张三 1.00 4.6 NaN ... NaN NaN NaN NaN
6 张三 0.50 5.0 NaN ... NaN NaN NaN NaN
7 张三 2.00 5.0 NaN ... NaN NaN NaN NaN
8 张三 2.00 5.0 NaN ... NaN NaN NaN NaN
9 张三 2.00 4.5 NaN ... NaN NaN NaN NaN
10 张三 1.00 5.0 NaN ... NaN NaN NaN NaN
11 张三 2.00 5.0 NaN ... NaN NaN NaN NaN
12 张三 3.00 5.0 NaN ... NaN NaN NaN NaN
13 张三 3.00 4.2 NaN ... NaN NaN NaN NaN
对于dataframe中数据的检索也可以通过索引十分轻松的完成,例如如果我想要查看姓名这一列的第3行,那么可以通过下述代码实现:
[in] df.iloc[2][姓名]
[out] 张三
pandas创建新的excel
pandas创建新的excel表格同样十分简单,只需将普通的列表转化为dataframe,并通过to_excel函数进行创建。
data = { 'name': [], 'score': [], 'sum':[], 'jidian':[]}
df = DataFrame(data)
df.to_excel('new1.xlsx')
编写代码计算大学绩点
由于博主的学院没有提供年级绩点排名,且恰好收集了全年级所有学生的科目列表以及对应的成绩(格式如下表所示),因此决定利用Python对绩点进行统计。博主所在学院的绩点计算方式如下:
总
绩
点
=
∑
科
目
学
分
?
科
目
绩
点
∑
科
目
学
分
总绩点=\frac{\sum{科目学分*科目绩点}}{\sum{科目学分}}
总绩点=∑科目学分∑科目学分?科目绩点? 统计所得的表格类型如下:
姓名 | 学分 | 绩点 |
---|
张三 | 1 | 5.0 | 张三 | 2 | 4.3 | 张三 | 0.25 | 3.7 | 李四 | 0.5 | 5.0 | 李四 | 2 | 2.6 |
第一列为学生姓名,第二列为各科学分,第三列为各科绩点。下面为实现代码链接: python实现大学生绩点排名计算 实现生成excel表格包括学生姓名,总绩点,总学分,有效学分(学分*绩点)。代码较简单,只为博主复习一下pandas包=^=。
更新时间
2021.9.19
|