当前位置:首页python > 正文

【内部资料】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()


\"image.png\"/


柱形图:

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()

\"image.png\"/

柱形图二:

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()

\"image.png\"/

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击