成人速成会计班师资资质筛查统计工具一、实际应用场景描述场景背景某职业教育集团旗下有50成人速成会计培训机构每家机构上报了约30-100名兼职/全职讲师名单及资质证明Excel表格。集团需在3天内完成所有师资的合规性审查筛选出具备“智能会计”如财务大数据分析、RPA财务机器人、Python财务应用教学能力的合格师资并标记出资质存疑的机构。核心任务1. 批量读取各机构提交的Excel师资表。2. 校验关键字段是否持有CPA/中级会计职称是否有Python/RPA项目经验是否具备3年以上智能财务实操经验。3. 自动分类将师资分为“优秀”、“合格”、“不合格”并将“不合格”人员关联的机构标记为“高风险”。二、引入痛点1. 人工审核效率极低HR需逐行查看Excel判断“Python财务应用”是仅指会打字还是真能写脚本主观性强且耗时。2. 标准不统一不同机构对“智能会计资质”定义模糊有的把“会用Excel宏”算作RPA经验导致教学质量参差不齐。3. 数据孤岛各机构数据格式不一有的用“注册会计师”有的用“CPA”难以直接合并分析。4. 缺乏量化指标无法快速统计“不合格率最高的机构”或“具备AI教学能力的师资占比”。三、核心逻辑讲解本工具采用“规则引擎 评分卡”模式而非复杂机器学习确保结果可解释且符合审计要求。1. 数据清洗层 (Data Cleaning)* 统一职称名称如将“注会”、“CPA”、“注册会计师”归一化为CPA。* 提取关键词从“个人简介”或“项目经历”字段中使用正则匹配Python,Pandas,RPA,UiPath,财务机器人 等关键词。2. 资质校验层 (Validation Engine)* 硬性门槛必须拥有CPA或中级会计职称。* 技能门槛必须在经历描述中包含至少2个智能会计关键词。* 经验门槛工作年限 3年。3. 评分与分类 (Scoring Labeling)* 优秀 (Score 90)双证CPA智能会计认证 5年以上经验。* 合格 (60 Score 90)单证 3年以上经验 技能匹配。* 不合格 (Score 60)无职称或0智能会计经验。4. 报告生成 (Reporting)* 输出一份汇总Excel包含每个老师的详细得分和分类。* 输出一份机构黑名单列出不合格率超过30%的机构。四、代码模块化实现项目结构如下accounting_teacher_screen/├── main.py # 主执行入口├── config.py # 配置参数关键词、权重├── data_processor.py # 数据读取与清洗├── validator.py # 核心校验逻辑├── reporter.py # 报告生成├── requirements.txt # 依赖库└── README.md # 使用说明1. config.py (配置文件)# config.py# 定义智能会计相关的技能关键词SMART_ACCOUNTING_KEYWORDS [python, pandas, numpy, sql,rpa, uipath, blueprism, 财务机器人,powerbi, tableau, 大数据, 机器学习]# 职称映射字典用于归一化TITLE_MAPPING {注册会计师: CPA,CPA: CPA,注册会计: CPA,中级会计职称: 中级,中级会计师: 中级,高级会计师: 高级}# 评分权重SCORING_RULES {HAS_CPA: 40,HAS_INTERMEDIATE: 25,SMART_SKILL_MATCH: 10, # 每匹配一个关键词得10分EXPERIENCE_YEARS: 5 # 每年经验得5分}# 分类阈值THRESHOLDS {EXCELLENT: 90,QUALIFIED: 60}2. data_processor.py (数据处理)# data_processor.pyimport pandas as pdimport refrom config import TITLE_MAPPING, SMART_ACCOUNTING_KEYWORDSclass DataProcessor:def __init__(self, file_path):self.file_path file_pathself.df Nonedef load_data(self):加载Excel数据try:self.df pd.read_excel(self.file_path)print(f成功加载文件: {self.file_path}, 共 {len(self.df)} 条记录)except Exception as e:raise FileNotFoundError(f无法读取文件: {e})return selfdef normalize_titles(self):归一化职称列if 职称 in self.df.columns:self.df[normalized_title] self.df[职称].astype(str).apply(lambda x: next((v for k, v in TITLE_MAPPING.items() if k in x), 无))return selfdef extract_smart_skills(self):从简历描述中提取智能会计技能返回匹配到的关键词数量def find_keywords(text):if pd.isna(text):return 0text_lower str(text).lower()count 0for keyword in SMART_ACCOUNTING_KEYWORDS:if re.search(keyword, text_lower):count 1return count# 假设简历在 个人简介 或 项目经历 列skill_column 个人简介 if 个人简介 in self.df.columns else 项目经历if skill_column in self.df.columns:self.df[smart_skill_count] self.df[skill_column].apply(find_keywords)return selfdef get_processed_data(self):返回处理后的DataFramereturn self.df3. validator.py (核心校验逻辑)# validator.pyimport pandas as pdfrom config import SCORING_RULES, THRESHOLDSclass TeacherValidator:def __init__(self, df):self.df dfself.results []def calculate_score(self, row):根据规则计算单个教师的得分score 0# 1. 检查职称title row.get(normalized_title, 无)if title CPA:score SCORING_RULES[HAS_CPA]elif title 中级:score SCORING_RULES[HAS_INTERMEDIATE]# 2. 检查智能技能数量skill_count row.get(smart_skill_count, 0)score min(skill_count, 3) * SCORING_RULES[SMART_SKILL_MATCH] # 最多算3个技能# 3. 检查工作年限years row.get(工作年限, 0)try:years int(years)except:years 0score years * SCORING_RULES[EXPERIENCE_YEARS]return scoredef classify_teacher(self, score):根据分数进行分类if score THRESHOLDS[EXCELLENT]:return 优秀elif score THRESHOLDS[QUALIFIED]:return 合格else:return 不合格def run_validation(self):执行全量校验self.df[总分] self.df.apply(self.calculate_score, axis1)self.df[分类结果] self.df[总分].apply(self.classify_teacher)return self.df4. reporter.py (报告生成)# reporter.pyimport pandas as pdclass Reporter:def __init__(self, df):self.df dfdef generate_summary_report(self, output_path师资筛查报告.xlsx):生成详细报告with pd.ExcelWriter(output_path) as writer:# Sheet 1: 所有老师详情self.df.to_excel(writer, sheet_name师资详情, indexFalse)# Sheet 2: 按机构统计不合格率if 所属机构 in self.df.columns:org_stats self.df.groupby(所属机构).agg(总人数(姓名, count),不合格人数(分类结果, lambda x: (x 不合格).sum()),不合格率(分类结果, lambda x: f{(x 不合格).mean():.2%})).reset_index()# 标记高风险机构org_stats[风险等级] org_stats[不合格率].apply(lambda x: 高风险 if float(x.strip(%)) 30 else 正常)org_stats.to_excel(writer, sheet_name机构统计, indexFalse)print(f报告已生成: {output_path})5. main.py (主程序)# main.pyfrom data_processor import DataProcessorfrom validator import TeacherValidatorfrom reporter import Reporterdef main(input_file):# 1. 数据读取与清洗processor DataProcessor(input_file)processor.load_data()processor.normalize_titles()processor.extract_smart_skills()df processor.get_processed_data()# 2. 资质校验与评分validator TeacherValidator(df)result_df validator.run_validation()# 3. 生成报告reporter Reporter(result_df)reporter.generate_summary_report()if __name__ __main__:# 示例假设所有机构的Excel已合并为一个总表input_excel raw_teacher_data.xlsxmain(input_excel)五、README 文件# 成人速成会计班师资资质筛查工具## 1. 项目简介这是一个基于 Python 开发的自动化工具专为职业教育集团设计用于批量筛查成人速成会计培训班的师资资质。工具重点评估教师是否具备“智能会计”教学能力如 Python、RPA、大数据分析。## 2. 功能特性* **批量处理**支持读取大型 Excel 师资名单。* **智能识别**自动从文本中提取 Python、RPA 等技能关键词。* **标准化评分**内置评分卡模型客观量化师资水平。* **风险预警**自动生成机构不合格率报表标记高风险机构。## 3. 安装与使用### 环境依赖bashpip install -r requirements.txt* pandas* openpyxl### 使用方法1. **准备数据**将所有机构的师资数据整理成一个 Excel 文件如 input.xlsx必须包含列姓名, 所属机构, 职称, 工作年限, 个人简介。2. **运行程序**bashpython main.py3. **查看结果**程序将生成 师资筛查报告.xlsx。## 4. 输入数据格式示例| 姓名 | 所属机构 | 职称 | 工作年限 | 个人简介 || :--- | :--- | :--- | :--- | :--- || 张三 | A机构 | CPA | 5 | 精通Python财务数据分析熟悉Pandas库... |六、核心知识点卡片 (Flashcards)知识点 核心概念 代码示例/公式数据归一化 (Normalization) 将不同表述的同一事物统一为标准名称便于统计。df[职称].replace({注会:CPA, 中级:中级})正则表达式 (Regex) 用于在长文本中快速查找特定模式如关键词。 re.search(rpythonPandas Apply 对 DataFrame 的行或列执行自定义函数。df[score] df.apply(calculate_score, axis1)规则引擎 (Rule Engine) 不使用 AI而是用if-else 和业务阈值来做决策透明且可控。if score 90: label 优秀Excel Writer 在一个 Excel 文件中写入多个 Sheet。with pd.ExcelWriter(out.xlsx) as w:七、总结作为一名全栈工程师我们不仅仅是写代码更是用技术解决业务痛点。这个工具的价值在于1. 降本增效将原本需要数周的人工审核缩短至分钟级。2. 标准落地通过代码强制固化“智能会计”的准入标准杜绝了“会开电脑就能教Python”的行业乱象。3. 数据驱动决策管理层不再凭感觉而是依据“不合格率”数据来决定是否与某家机构续约。对于会计行业来说“智能会计”不是选修课而是必修课。这套工具不仅筛选了老师更是在筛选那些真正拥抱数字化转型的教学机构。未来我们甚至可以将此工具封装为 API集成到教务管理系统中实现师资资质的实时监控。利用AI解决实际问题如果你觉得这个工具好用欢迎关注长安牧笛