【内部资料】python统计信息学奥赛获奖年级百分比
作者:野牛程序员:2023-11-23 19:57:25python阅读 2346
import pandas as pd # 读取Excel文件 # 读取Excel文件中索引为 0 的工作表 # df = pd.read_excel('E:\\\\CSP.xlsx', sheet_name=0) # 指定header为第8行(索引为7) df = pd.read_excel('E:\\\\CSP.xlsx', sheet_name=0, header=1) print(df.columns) # df = pd.read_excel('your_excel_file.xlsx') # 按年级进行分组并计算各年级的百分比 grade_counts = df['年级'].value_counts() grade_percentages = grade_counts / len(df) * 100 # 打印结果 print("各年级所占百分比:") print(grade_percentages) # 按年级进行分组并计算各年级的百分比 SF_counts = df['省份'].value_counts() SF_percentages = SF_counts / len(df) * 100 # 打印结果 print("各省所占百分比:") print(SF_percentages)
Index(['证书编号', '省份', '准考证号', '姓名', '性别', '总分', '学校', '年级'], dtype='object') 各年级所占百分比: 年级 初三 33.655862 初二 33.462345 初一 18.577649 小学/无 8.466376 高一 3.870343 高二 1.273988 初四 0.548299 高三 0.145138 Name: count, dtype: float64 各省所占百分比: 省份 广东 9.869376 浙江 7.660055 北京 6.934365 福建 6.595710 湖南 5.934527 安徽 5.886147 江苏 5.499113 上海 4.805677 山东 4.515401 四川 4.096114 山西 3.967102 河北 3.483309 河南 3.225286 广西 3.144654 湖北 3.096275 陕西 2.999516 重庆 2.935010 云南 1.870666 新疆 1.838413 贵州 1.757781 天津 1.709402 海南 1.677149 辽宁 1.290114 江西 1.225609 内蒙古 0.935333 吉林 0.838574 黑龙江 0.774069 甘肃 0.580552 宁夏 0.516046 澳门 0.161264 香港 0.161264 青海 0.016126 Name: count, dtype: float64
用饼状图展示:
import matplotlib.pyplot as plt # 设置中文字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 或者 ['Microsoft YaHei'] plt.rcParams['axes.unicode_minus'] = False data = { '初三': 33.655862, '初二': 33.462345, '初一': 18.577649, '小学/无': 8.466376, '高一': 3.870343, '高二': 1.273988, '初四': 0.548299, '高三': 0.145138 } labels = data.keys() sizes = data.values() plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140) plt.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle. plt.title('CCF CSP-J/S 2023第二轮入门级一等名单各年级百分比分布') plt.show()
柱形图:
import matplotlib.pyplot as plt # 设置中文字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 或者 ['Microsoft YaHei'] plt.rcParams['axes.unicode_minus'] = False data = { '初三': 33.66, '初二': 33.46, '初一': 18.58, '小学/无': 8.47, '高一': 3.87, '高二': 1.27, '初四': 0.55, '高三': 0.15 } labels = data.keys() sizes = data.values() plt.bar(labels, sizes) plt.title('CCF CSP-J/S 2023第二轮入门级一等名单各年级百分比分布') plt.xlabel('年级') plt.ylabel('百分比') plt.show()
柱形图二:
import matplotlib.pyplot as plt # 设置中文字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 或者 ['Microsoft YaHei'] plt.rcParams['axes.unicode_minus'] = False data = { '初三': 33.66, '初二': 33.46, '初一': 18.58, '小学/无': 8.47, '高一': 3.87, '高二': 1.27, '初四': 0.55, '高三': 0.15 } labels = data.keys() sizes = data.values() fig, ax = plt.subplots() # 在每个柱形上方显示百分比 for label, size in zip(labels, sizes): ax.text(label, size, f'{size:.2f}%', ha='center', va='bottom') plt.bar(labels, sizes) plt.title('CCF CSP-J/S 2023第二轮入门级一等名单各年级百分比分布') plt.xlabel('年级') plt.ylabel('百分比') plt.show()
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
- 上一篇:python字典最多多少key
- 下一篇:C语言结构体指针如何定义和使用