python对excel文件操作,生成图片和添加水印

示例图:


1.首先导入pandas模块  
下载命令:pip install pandas

import pandas as pd
ff = pd.read_excel("文件名.xlsx")


list1 = []
for i, j in ff.iterrows():
    list1.append(j[1]) # 添加到list1里面所有同学成绩
    # print(j[0], j[1])  # 所有姓名,成绩


list1.pop(0)  # 去掉下标为0的'姓名和成绩'中文,根据自己情况定义这行代码
list1.pop(-1) # 去掉下标为-1的'未参加'中文,根据自己情况定义这行代码


avg = sum(list1) / len(list1)
print('平均值',round(avg, 2))  # 平均值保留两位小数


list4 = {}
for i, j in ff[1:-1].iterrows():
    if j[1] > avg:
        list4[f'{j[0]}'] = j[1]
print('大于平均值:',list4) # 大于平均值的所有同学和成绩,添加到list4


list5 = {}
for i, j in ff[1:-1].iterrows():
    if j[1] < avg:
        list5[f'{j[0]}'] = j[1]
print('小于平均值:',list5)  # 大于平均值的所有同学和成绩,添加到list5


list2 = {}  
for i, j in ff.iterrows():
    if j[1] == max(list1):
        list2[f'{j[0]}'] = j[1]
print("成绩最高", list2)  # 成绩最高的所有同学,添加到list2


list3 = {}
for i, j in ff.iterrows():
    if j[1] == min(list1):
        list3[f'{j[0]}'] = j[1]
print('成绩最低', list3)  # 成绩最低的所有同学,添加到list3


# 把成绩排名信息写入csv格式文件中,文件名位test_你的名字
for i,j in ff.iterrows():
    with open('test_liyongqi.csv', 'a',encoding='utf-8') as f:
        f.write(str(j[0]) + str(j[1]) + '\n')

2.下面是生成一张图片和添加水印

list6 = {}
for i, j in ff[1:-1].iterrows():  # 存入list6所有学生和成绩
    list6[f'{j[0]}'] = j[1]
top_scores = sorted(list6.items(), key=lambda x: x[1], reverse=True) # 这里用到高阶函数sorted升序
 
qian3 = []                         # 获取前三名和最后三名
for i, j in list6.items():
    if top_scores[0][1] == j:
        # print("最高成绩:"+i, j)
        pass
    elif top_scores[-1][1] == j:
        # print("最低成绩:"+i, j)
        pass
    else:
        qian3 = top_scores[:3] + top_scores[-3:]
list7 = str(qian3)
from PIL import Image, ImageDraw, ImageFont    # 导入PIL库
# 创建空白图片
image = Image.new("RGB", (1200, 800), (255, 255, 255))
# 绘制图像内容
draw = ImageDraw.Draw(image)
draw.rectangle([(100, 100), (1000, 600)], fill=(0, 0, 255))  # 画一个蓝色矩形
# 设置字体和字号
font = ImageFont.truetype("C:/Windows/Fonts/FZSTK.TTF", 24)
# 设置水印文本是上面定义的 qian3 = []
# 在图片上绘制水印文本
draw.text((180, 270),list7 , fill=(0, 0, 0), font=font)
# 保存生成的图片
image.save("image1.png")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值