python多条件筛选并计算excel数据编程求助
本帖最后由 我家有只小火锅 于 2020-8-29 11:15 编辑1、想筛选出各班语文分数大于60、数学分数大于80、英语分数大于80的学生以及他的总分。
2、求出这些学生总分的平均分
3个sheet里分别对应3个班的数据
程序应该怎么编制啊?
我编了下面的程序,后续就不知道怎么编了{:9_222:}
>>> from openpyxl import load_workbook
>>> wb = load_workbook(filename = r"G:\360MoveData\Users\Administrator\Desktop\test.xlsx")
>>> ws = wb["1班"]
>>> for row in ws.iter_cols(min_col=2, min_row=2, max_col=6, max_row=5):
ws.coordinate] = '=IF(%s>60,1,2)' % (row.coordinate)
ws.coordinate] = '=IF(%s>80,3,4)' % (row.coordinate)
ws.coordinate] = '=IF(%s>80,5,6)' % (row.coordinate) 数据处理,建议还是用pandas比较好吧,你要用openpyxl实现你上面的需求,估计要写好多代码
你可以试试这个
import pandas as pd
a=pd.read_excel('4.xlsx',sheet_name='1班')#读取
a['总分']=a.loc[:,['语文','数学','英语']].sum(1)#计算总分
a['平均分']=a.loc[:,['语文','数学','英语']].mean(1)#计算平均值
b=a>60]#按条件筛选
b=b>80]
b=b>80]
a.loc='符合条件'#筛选出符合条件的
print(a)
a.to_excel('result.xlsx',index=False)#输出
疾风怪盗 发表于 2020-8-29 12:05
数据处理,建议还是用pandas比较好吧,你要用openpyxl实现你上面的需求,估计要写好多代码
你可以试试这个 ...
请问这个论坛上有pandas的学习视频嘛{:9_221:} 我家有只小火锅 发表于 2020-8-29 12:34
请问这个论坛上有pandas的学习视频嘛
from openpyxl import load_workbook
wb = load_workbook(filename="4.xlsx")
ws = wb["1班"]
for i in range(2, ws.max_row + 1):
yuwen = int(ws['B' + str(i)].value)
shuxue = int(ws['C' + str(i)].value)
yingyu = int(ws['D' + str(i)].value)
ws['E' + str(i)].value = yuwen + shuxue + yingyu
ws['F' + str(i)].value = ws['E' + str(i)].value / 3
if (yuwen>60) and (shuxue>80) and (yingyu>80):
ws['G' + str(i)].value ='符合条件'
wb.save('result.xlsx') 我家有只小火锅 发表于 2020-8-29 12:34
请问这个论坛上有pandas的学习视频嘛
不想学pandas,openpyxl就只能这么写了,不过还是建议学一下,哔哩哔哩上找,会有很多视频,这个处理大量数据效率高
页:
[1]