Python提取Excel表格数据并用DataFrame处理求平均值输出

Python读取Excel文件取平均数

1.文件读取

下面我们将对这个excel文件进行读取
在这里插入图片描述

import xlrd                           #xlrd是excel文件读取库 只读写
data = xlrd.open_workbook('a.xlsx')   #打开excel文件
table = data.sheets()[0]              #打开第一张表格
nrows = table.nrows                   #获取表格的行数 

接下来利用For循环对每行进行处理,处理的目的是把想要的数据存储在列表当中

for i in range(nrows):
	name_.append(table.row_values(i)[0])
	data_.append(table.row_values(i)[2:5])

2.整合为字典

这一步是获取数据后第一个要处理的关键
初始化字典的方法有许多
但是最常用的方法还是使用
zip
可以把两个对应位置的列表进行整合为字典

dict_data = dict(zip(name_,data_))

输出结果在这里插入图片描述

再根据字典输出为DataFrame

data  = pd.DataFrame(dict_data,index=['政治','纪律','品德','学习'])

再进行转置输出

data.T

在这里插入图片描述

2.平均数的读取

 data.mean(axis = 1)

mean()里面axis表示的是坐标轴,axis = 0表示对纵向求平均值,axis = 1表示对横向求平均值
在这里插入图片描述

以下是关于如何完成上述任务的一个简单介绍: 我们先从第一部分的任务开始,即通过给定的成绩单数据生成一个Pandas DataFrame,并对其进行处理。 ### 创建 `test1.py` #### 第一步:构建DataFrame 可以使用`pandas.DataFrame()`函数来创建DataFrame。首先导入必要的库: ```python import pandas as pd # 构建初始的数据列表 data = [ ['小红', '语文', 100], ['小红', '英语', 90], ['小红', '数学', 75], ['张明', '语文', 80], ['张明', '英语', 76], ['张明', '数学', 88], ['小江', '语文', 79], ['小江', '数学', 120], ['小江', '英语', 80], ['小李', '英语', 87], ['小李', '语文', 99], ['小李', '数学', 76] ] # 将其转化为 DataFrame 格式 columns_name = ['姓名', '科目', '成绩'] df = pd.DataFrame(data, columns=columns_name) ``` #### 第二步:切片获取各个学生的成绩 这里我们可以按照名字筛选出特定学生的所有行记录。 例如对于“小红”的所有课程分数可以用下面的方式提取出来: ```python # 获取每位同学的成绩 (按姓名过滤) pdl = df[df['姓名'] == '小红'].reset_index(drop=True) # 小红的成绩 pd2 = df[df['姓名'] == '张明'].reset_index(drop=True) # 张明的成绩 pd3 = df[df['姓名'] == '小江'].reset_index(drop=True) # 小江的成绩 pd4 = df[df['姓名'] == '小李'].reset_index(drop=True) # 小李的成绩 ``` #### 第三步:计算每人的平均分 接着就是利用 Pandas 的 `.groupby()` 和 `.mean()` 函数来进行聚合操作,得到每个人的平均分。 ```python # 计算每人各科目的平均值 M1 = round(pdl.groupby('科目')['成绩'].mean(), 2).to_dict() # 小红的平均分字典形式返回 M2 = round(pd2.groupby('科目')['成绩'].mean(), 2).to_dict() M3 = round(pd3.groupby('科目')['成绩'].mean(), 2).to_dict() M4 = round(pd4.groupby('科目')['成绩'].mean(), 2).to_dict() print("小红:", M1) print("张明:", M2) print("小江:", M3) print("小李:", M4) ``` --- 接下来是第二部分内容——`test2.py`脚本的设计思路。 假设 Excel 文件名为 `"grades.xlsx"` 并且包含与上文类似结构化信息,则步骤如下: ```python import pandas as pd # 读取excel文件到 dataframe 中 file_path = "grades.xlsx" df = pd.read_excel(file_path) # 显示前几条数据检查是否成功加载了正确的 excel 数据源 print(df.head()) # 按照需继续做数据分析或其他指定的操作... ``` 如果需要更进一步地分析该数据集的话还可以参考第一步中的逻辑进行切割和统计等其他高级运算。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值