使用python 对 Excel表格进行操作

要求:

  输出所有同学“名称:对应成绩”的信息 

  输出分值最高和最低的同学名称及分数,(如有重复并列输出)

  求出平均值并输出

  输出高于平均值的同学名称及成绩

  输出低于平均值的同学名称及成绩

  将成绩排名信息写入csv格式的文件中,文件名称为:test_你自己的名字_时间戳.csv 3

  生成一个图片,将前三名信息水印在这张图片上,将图片保存

#导包
from PIL import Image, ImageDraw, ImageFont
import pandas as pd
import numpy as e
import csv
import datetime

list1 = []
#定义空列表 用来存放表格中的数据
ff = pd.read_excel("2209A2361-第一轮面试成绩.xlsx")

#通过定义变量 ff 获取表格所有内容 , 通过下方遍历循环打印在控制台出现数据展示
for i, j in ff.iterrows():
   print('//',j[0], j[1])

# 循环遍历向列表添加数据
for i, j in ff.iterrows():
   list1.append({
      '姓名': str(j[0]),
      '分数': j[1]
   })

# 通过pop 方法弹出已知不可用内容
list1.pop(0)
list1.pop(-1)
#定义两个空列表放置姓名数据,分数数据
lst = []
ty = []

print('列表包字典的使用数据',list1)


# 将数据添加到指定变量中
for i in list1:
   ty.append(i['姓名'])
   lst.append(i['分数'])


# 求最小值
for i in list1:
   if i['分数'] == min(lst):
      print('最小值',i)


# 求最大值
for i in list1:
   if i['分数'] == max(lst):
      print('最大值',i)

 #使用e 计算平均值
a = e.mean(lst)
print('平均值',a)

# 计算高于平均分的学生
llll = list(filter(lambda x:x['分数'] > a , list1))
print('高于平均分',llll)

# 计算低于平均分的学生
llll = list(filter(lambda x:x['分数'] < a , list1))
print('低于平均分',llll)

# 将数据写入一个csv格式文件
t=['姓名','成绩']
tti = datetime.datetime.now()
with open('wxy.csv','w', encoding='utf-8', newline='') as f:
   ui=csv.writer(f)
   ui.writerow(t)
   for i in range(len(list1)):
      op=[list1[i]['姓名'],list1[i]['分数']]
      ui.writerow(op)

# 计算前三名
sorted_data = sorted(list1, key=lambda x: x['分数'], reverse=True)[:3]
print('前三名',sorted_data)



# 创建一个空白图片
image = Image.new('RGB', (1900, 400), 'red')
draw = ImageDraw.Draw(image)

# 设置字体和颜色
font = ImageFont.truetype('msyh.ttc', 36)
text_color = (0, 0, 0)

# 添加文本水印
text = ','.join([f"'{d['姓名']}': {d['分数']}" for d in sorted_data])

draw.text((10, 10), text, fill=text_color, font=font)

# 保存图片
image.save('watermark.png')





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值