【无标题】

对excel表格进行操作

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

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

  求出平均值并输出

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

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

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

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


# 对excel表格进行操作
import pandas
import matplotlib.pyplot as plt
from PIL import Image, ImageDraw, ImageFont

af = pandas.read_excel('周五面试.xlsx')

# 将文字替换为0
af.replace(["未参加"], 0, inplace=True)

# 继续进行其他操作,如计算、分析等...

# 将修改后的结果保存到新的Excel文件中
af.to_excel("grades.xlsx", index=False)


df = pandas.read_excel('grades.xlsx')


max_score = df['成绩'].max()
min_score = df['成绩'].min()

for i,j in df.iterrows():
    print(j['姓名'],':',j['成绩'])



print("\n分值最高的同学:")
for index, row in df.iterrows():
    if row['成绩'] == max_score:
        print(row['姓名'], ":", row['成绩'])

print("\n分值最低的同学:")
for index, row in df.iterrows():
    if row['成绩'] == min_score:
        print(row['姓名'], ":", row['成绩'])

# 求平均值并输出
average_score = df['成绩'].mean()
print("\n平均成绩:",round(average_score,1))

# 输出高于平均值的同学及成绩
print("\n高于平均成绩的同学:")
for index, row in df.iterrows():
    if row['成绩'] > average_score:
        print(row['姓名'], ":", row['成绩'])

# 输出低于平均值的同学及成绩
print("\n低于平均成绩的同学:")
for index, row in df.iterrows():
    if row['成绩'] < average_score:
        print(row['姓名'], ":", row['成绩'])

# 根据成绩降序排序
df_sorted = df.sort_values('成绩', ascending=False)

# 获取前三名信息
top_3 = df_sorted.head(3)

# 将前三名信息写入CSV文件
file_name = f"{pandas.Timestamp.now().strftime('%Y%m%d%H%M%S')}.csv"
top_3.to_csv(file_name, index=False)


# 生成展示前三名信息的图片
image = Image.new('RGB', (400, 300), (255, 255, 255))
draw = ImageDraw.Draw(image)

# 设置文本字体和大小
font_size = 20
font_path = r"C:\Windows\Fonts\simfang.ttf"  #
font = ImageFont.truetype(font_path, font_size)

# 添加水印文本
y = 10
for index, row in top_3.iterrows():
    text = f"{row['姓名']}: {row['成绩']}"
    draw.text((10, y), text, fill=(0, 0, 0), font=font)
    y += 30

# 显示图片
plt.imshow(image)
plt.axis('off')
plt.show()
# plt.imshow(image): 这行代码将图片image传递给imshow()函数,用于显示图像。imshow()函数负责将图像数据绘制在图形坐标轴上。
# plt.axis('off'): 这行代码将图形的坐标轴关闭,即不显示坐标轴的刻度和标签。
# plt.show(): 这行代码显示图形窗口,并将图像展示出来。

# 保存图片
image_file = f"test_{pandas.Timestamp.now().strftime('%Y%m%d%H%M%S')}.png"
image.save(image_file)

导入的模块 

  • pandas 是一个强大的数据分析工具,提供了数据结构和数据分析功能,用于处理和分析数据。
  • matplotlib.pyplot 是一个用于绘制图表和可视化数据的库,常用于创建各种类型的统计图表。
  • PIL(Python Imaging Library)是一个用于处理图像的库,可用于打开、处理和保存各种图像文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值