对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)是一个用于处理图像的库,可用于打开、处理和保存各种图像文件。