背景需求:
前期制作了一个包含户籍地址的、去掉“学校附近居委会”、简单去重地址重复内容的代码。
【办公类-112-02】20250831儿童基本情况登记+户籍+去重居委会(运用deepseek的Python编程,实现excle数据匹配和提取判断)-CSDN博客文章浏览阅读585次,点赞16次,收藏9次。【办公类-112-02】20250831儿童基本情况登记+户籍+去重居委会(运用deepseek的Python编程,实现excle数据匹配和提取判断)
https://blog.csdn.net/reasonsummer/article/details/151049988?sharetype=blogdetail&sharerId=151049988&sharerefer=PC&sharesource=reasonsummer&spm=1011.2480.3001.8118
但是有一个问题:
虽然通过列出学校附近居委会的列表,把附近的居住地址和户籍地址去掉了居委会,但外地、外区的地址太多了,一个个挑选出来做列表,太费事了。
所以我还是希望

设计过程

0、下载园园通里三个园区的所有班级孩子的信息


1、三个表合并成一个表
'''
2025082520250825_2025_学年出入所(园)儿童基本情况登记 表一空 01
1、下载园园通三个园区名册.xls,把名册合并在一起
2、部分插班生信息手动添加
deepseek,阿夏
20250904
'''
import pandas as pd
import os
import re
def merge_and_format_excel():
# 定义文件路径
path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250825_2025_学年出入所(园)儿童基本情况登记 表一空'
folder_path = path + r"\园园通下载"
output_path = path + r'\01(所有班级)园园通信息合并.xlsx'
# 获取文件夹中的所有Excel文件
excel_files = [f for f in os.listdir(folder_path) if f.endswith(('.xlsx', '.xls'))]
if len(excel_files) < 2:
print("234文件夹中Excel文件数量不足2个")
return
# 读取所有Excel文件
dfs = []
for file in excel_files[:2]: # 只处理前两个文件
file_path = os.path.join(folder_path, file)
df = pd.read_excel(file_path)
dfs.append(df)
print(f"已读取文件: {file}")
# 合并数据
merged_df = pd.concat(dfs, ignore_index=True)
# 格式化班级列(处理所有班级类型)
def format_class_name(class_name):
if pd.isna(class_name):
return class_name
class_str = str(class_name)
# 定义班级类型和对应的前缀
class_types = {
'托班': '托', '托': '托',
'小班': '小', '小': '小',
'中班': '中', '中': '中',
'大班': '大', '大': '大'
}
# 中文数字到阿拉伯数字的映射
chinese_to_arabic = {
'一': '1', '二': '2', '三': '3', '四': '4', '五': '5',
'六': '6', '七': '7', '八': '8', '九': '9', '十': '10',
'1': '1', '2': '2', '3': '3', '4': '4', '5': '5',
'6': '6', '7': '