Google Colab中Excel学生数据的Python情境计数实现咨询
处理Students表格的情境统计方案
前置步骤
- 导入依赖库并读取Excel文件
在Google Colab中执行以下代码,可选择上传本地文件或挂载Google Drive读取文件:
执行后可通过import pandas as pd # 方式1:上传本地文件 from google.colab import files uploaded = files.upload() # 替换为你的Excel文件名,比如Students.xlsx df = pd.read_excel('Students.xlsx') # 方式2:挂载Google Drive(文件存放在Drive时使用) # from google.colab import drive # drive.mount('/content/drive') # df = pd.read_excel('/content/drive/MyDrive/你的文件路径/Students.xlsx')df.head()确认数据是否正确读取。
1. 统计状态为Closed Enrollment的男性学生数量
通过布尔索引筛选符合条件的记录,再统计数量:
male_closed_count = ((df['Course Status'] == 'Closed Enrollment') & (df['Gender'] == 'M')).sum() print(f"状态为Closed Enrollment的男性学生数量:{male_closed_count}")
原理:两个条件的布尔数组做逻辑与运算后,sum()会统计True的数量,即符合条件的记录数。
2. 找出退课(Closed Enrollment)学生最多的城市
先筛选退课数据,按城市分组统计人数,最后取最大值对应的城市:
# 筛选退课记录 closed_records = df[df['Course Status'] == 'Closed Enrollment'] # 统计各城市退课人数 city_closed_counts = closed_records['City'].value_counts() # 获取人数最多的城市及对应数量 top_city = city_closed_counts.idxmax() top_city_count = city_closed_counts.max() print(f"退课学生最多的城市:{top_city},人数:{top_city_count}")
若存在多个城市人数并列最多,idxmax()会返回第一个出现的城市,需全部展示可自行调整逻辑。
3. 按年份统计Public和Particular学校的学生人数
推荐两种简洁实现方式:
方法1:使用pd.crosstab
year_school_stats = pd.crosstab(df['Year'], df['School Origin']) print(year_school_stats)
直接生成以年份为行、学校类型为列的统计表格,自动填充各组合的人数。
方法2:使用groupby+unstack
year_school_stats = df.groupby(['Year', 'School Origin']).size().unstack(fill_value=0) print(year_school_stats)
通过分组统计数量后,unstack将学校类型转为列,fill_value=0确保无数据的年份-学校组合显示为0。
内容的提问来源于stack exchange,提问作者Skye
相关产品推荐
相关产品推荐

