某市普通高中选课数据如图1所示学生从地理、化学、生物等科目中选择三门作为高考选考科目1表示已选择的选考科目。使用 Python编程分析每所学校各科目选考的总人数、全市各科选考总人数及其占比经过程序处理后保存结果如图2importpandas as pdimportitertools#读数据到pandas的DataFrame结构中df=________xk73csvsep=‘’header=‘inf
import pandas as pd import itertools
读数据到pandas的DataFrame结构中
df = pd.read_csv("xk73.csv", sep='.', header='infer', encoding='utf-8') km = ['物理', '化学', '生物', '政治', '历史', '地理', '技术']
按学校分组计数
sc = df.groupby('学校代码', as_index=False).count()
对分组计数结果进行合计,合计结果转换为DF结构并转置为行
df_sum = pd.DataFrame(data=sc.sum()).T df_sum['学校代码'] = '合计'
增加"合计"行
result = sc.append(df_sum)
百分比计算
df_percent = df_sum df_percent['学校代码'] = '比例' for k in km: per = df_percent.at[0, k] / df_sum.at[0, '总人数'] df_percent[k] = per
增加"百分比"行
result = result.append(df_percent)
删除"姓名"列
result = result.drop('姓名', axis=1)
修改"学生编号"为"总人数"
result = result.rename(columns={'学生编号': '总人数'})
保存结果,创建Excel文件.生成的Excel文件
result.to_excel("学校人数统计.xlsx"
原文地址: https://www.cveoy.top/t/topic/fHbQ 著作权归作者所有。请勿转载和采集!