import pandas as pd
import matplotlib.pyplot as plt
t='C:/Windows/Fonts/simhei.ttf'
import matplotlib.font_manager as fm
font_prop = fm.FontProperties(fname=t)
plt.rcParams['font.family'] = 'SimHei'
pandas 是一个开源的python数据分析,他有DataFrame(就是一个二维表给型数据结构)和Series(一维标签数组)
import matplotlib.pyplot as plt 是 Python 中用于绘图的常用语句。它引入了 matplotlib 库,并将其中的子模块 pyplot 重命名为 plt,以方便使用。
matplotlib 是一个强大的绘图库,能够创建各种类型的静态、动态和交互式的图形。它提供了广泛的绘图功能,包括线图、散点图、柱状图、饼图、等高线图等,可用于数据可视化、数据分析、科学计算等领域。
下面的就是为了生成图片时图片创造不出文字,所以需要写入import matplotlib.font_manager as fm font_prop = fm.FontProperties(fname=t) plt.rcParams['font.family'] = 'SimHei'
这段代码是为了让pytharm可以读取 Excel 表格
df = pd.read_excel('C:/Users/zzh12/Desktop/a.xlsx')
这是为了将成绩转换为数值类型
df['成绩'] = pd.to_numeric(df['成绩'], errors='coerce')
这是打印出全部内容
for index, row in df.iterrows():
print(f"姓名: {row['姓名']},成绩: {row['成绩']}")
这是找出最高和最低的三位同学
top3_students = df.nlargest(3, '成绩')
bottom3_students = df.nsmallest(3, '成绩')
输出最高成绩和最低成绩的三个人
print("最高分的三个人:")
for index, row in top3_students.iterrows():
print(f"姓名: {row['姓名']},成绩: {row['成绩']}")
print("最低分的三个人:")
for index, row in bottom3_students.iterrows():
print(f"姓名: {row['姓名']},成绩: {row['成绩']}")
这是提取最高和最低的成绩,刚才的是打印出Excel里面的数据内容,现在是对Excel的数据进行提取拿到Pytharm里面
max_score = top3_students['成绩'].max()
min_score = bottom3_students['成绩'].min()
计算出平均成绩
average_score = df['成绩'].mean()
print(f"平均成绩: {average_score}")
找出高于平均分的同学和低于平均分的同学
above_average = df.loc[df['成绩'] > average_score]
below_average = df.loc[df['成绩'] < average_score]
print("高于平均分的同学:")
for index, row in above_average.iterrows():
print(f"姓名: {row['姓名']},成绩: {row['成绩']}")
print("低于平均分的同学:")
for index, row in below_average.iterrows():
print(f"姓名: {row['姓名']},成绩: {row['成绩']}")
将最高分的前三个人和后三个人存入到csv文件内
top3_students.to_csv('top3_students.csv', index=False)
bottom3_students.to_csv('bottom3_students.csv', index=False)
student_data = {
'top3_students': top3_students.to_dict(orient='records'),
'bottom3_students': bottom3_students.to_dict(orient='records')
}
将Csv文件报存
pd.DataFrame.from_dict(student_data).to_csv('student_data.csv', index=False)
然后用变量名字接受Csv的内容
df = pd.read_csv('student_data.csv')
接着就是设计生成图片以及图片的样式
# 创建空白图像
plt.figure(figsize=(10, 8))
plt.axis('off')
# 将DataFrame的内容直接复制到图像中
table = plt.table(cellText=df.values, colLabels=df.columns, cellLoc='center', loc='center')
# 设置表格字体大小
table.auto_set_font_size(False)
table.set_fontsize(12)
# 调整单元格的宽度
table.scale(1, 1.5)
# 保存图片
plt.savefig('student_data_table.png', bbox_inches='tight', pad_inches=0.5)
# 展示图片
plt.show()