对Excel表格进行操作

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

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

3.求出平均值并输出 2分

4.输出高于平均值的同学名称及成绩 3分

5.输出低于平均值的同学名称及成绩 3分

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

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

第一题:
list = []
df = pd.read_excel(r"C:\Users\26448\Desktop\2209a.xlsx")
for i, j in df.iterrows():
   list.append({'姓名': str(j[0]),'分数': int(j[1])})
list.pop(0)
list.pop(-1)
fd = []
for i in list:
    fd.append(i['分数'])

第二题:
maxx = []
for i in list:
    if i['分数'] == max(fd):
        maxx.append(i)
        print('最高分:',i)
print(maxx)
for i in list:
    if i['分数'] == min(fd):
        print('最低分:',i)
第三题:
fens = reduce(lambda x,y:x+y , fd)
pjf = fens/len(fd)
print('平均分','%.1f' %pjf)
第四题:
for i in list:
    if i['分数'] < pjf:
       print('低于平均分:{},成绩为:{}'.format(i['姓名'],i['分数']))

第五题:
for i in list:
    if i['分数'] > pjf:
       print('高于平均分:{},成绩为:{}'.format(i['姓名'],i['分数']))
第六题:
with open('zhu.csv','w') as f:
    writer = csv.writer(f)
    for i in range(len(list)):
        p = list[i]['姓名'],list[i]['分数']
        writer.writerow(p)
第七题:
# 创建一个空白图片
image = Image.new('RGB', (400, 300), 'white')
draw = ImageDraw.Draw(image)

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

# 添加文本水印
text = ''
for j in range(len(maxx)):
    text += ':'.join([str(maxx[j]['姓名']),str(maxx[j]['分数'])])
print(text)
draw.text((10, 10), text, fill=text_color, font=font)

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

猜你喜欢

转载自blog.csdn.net/NOguang/article/details/131580511
今日推荐