python截取excel中的学号位数,来统计每个班级的人数
时间: 2024-12-19 22:17:44 浏览: 27
在Python中,我们可以使用pandas库来处理Excel文件,并利用正则表达式来截取特定列的学号部分,然后进行计数。以下是一个简单的步骤:
首先,你需要安装pandas
和openpyxl
或xlsxwriter
库,分别用于读取Excel数据和操作工作簿:
pip install pandas openpyxl # 或者如果你需要写入新的Excel文件,可以安装 xlsxwriter
然后,你可以通过以下代码来实现这个功能:
import pandas as pd
# 读取Excel文件
df = pd.read_excel('your_file.xlsx') # 将'your_file.xlsx'替换为你实际的文件路径
# 假设你的学号在名为'StudentID'的列,假设学号格式是前4位表示班级
def extract_class_id(row):
pattern = r'^\d{4}'
match = re.match(pattern, row['StudentID'])
if match:
return int(match.group())
else:
return None # 如果不是有效的4位数字,返回None
# 使用apply函数提取班级并清理缺失值
df['ClassID'] = df.apply(extract_class_id, axis=1)
df = df.dropna(subset=['ClassID']) # 删除无法匹配到班级的行
# 统计每个班级的人数
class_counts = df['ClassID'].value_counts()
# 输出结果或保存到新Excel
print(class_counts)
# 如果你想将结果保存到新文件
class_counts.to_excel('class_distribution.xlsx', index=False)
在这个例子中,我们假设学号的前四位表示班级。如果学号的格式不同,你需要调整正则表达式pattern
。
相关推荐












