Python自动化处理Excel表格的方法详解

Written by

in

文章目录
  • 每个月底整理各部门提交的Excel表格,手动加总数据、处理空值、合并重复姓名……这些重复劳动既耗时又容易出错。 其实用Python写个简单脚本,几分钟就能搞定。
  • 比如收到这样的表格data260202.xlsx: 需要按姓名汇总各月数据,还要处理空值和可能的重复姓名。
  • import pandas as pd # 读取数据 df = pd.read_excel(‘data260202.xlsx’) # 清洗姓名列 df[‘名称’] = df[‘名称’].astype(str).str.strip() df = df[df[‘名称’] != ”] # 自动识别月份列(除“名称”外的所有列) month_cols = [col for col in df.columns if col != ‘名称’] # 空值转0,非数字转0 for col in month_cols: df[col] = pd.to_numeric(df[col], errors=’coerce’).fillna(0) # 按姓名汇总 result = df.groupby(‘名称’, as_index=False)[month_cols].sum() # 添加总计并排序 result[‘总计’] = result[month_cols].sum(axis=1) result = result.sort_values(‘名称’).reset_index(drop=True) # 输出结果 print(result.to_string(index=False)) result.to_excel(‘月度汇总报表.xlsx’, index=False)
  • 自动适配月份:新增“4月”“5月”列无需修改代码,只要列名不是“名称”都会被纳入计算 空值友好:空白单元格、文字内容自动转为0,避免报错 合并重复项:同名人员的数据自动累加 结果可复用:同时输出到控制台和Excel,方便核对与存档 运行后生成的报表:
  • 1.列名含“月”字但格式杂乱 改用: month_cols = [col for col in df.columns if ‘月’ in str(col)] 2.跨年数据(如“2026年1月”) 用正则匹配: import re month_cols = [col for col in df.columns if re.search(r’d+月$|d+年d+月’, str(col))] 3.需要按部门+姓名两级汇总 假设表格有“部门”列: result = df.groupby([‘部门’, ‘名称’])[month_cols].sum().reset_index()
  • 安装依赖:pip install pandas openpyxl 将Excel文件与脚本放在同一目录 运行脚本,自动生成月度汇总报表.xlsx 适合财务、运营、项目管理等需要定期汇总数据的岗位。某电商团队用类似脚本将月度报表处理时间从2小时缩短到10秒,且再未出现手工计算错误。 代码虽短,解决的是实实在在的重复劳动。把机械工作交给程序,人去做更有价值的事。 到此这篇关于Python自动化处理Excel表格的方法详解的文章就介绍到这了,更多相关Python自动化处理Excel内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: 使用Python实现Excel表格处理自动化的方法技巧 Python实现Excel数据自动化处理的全过程 Python自动化处理Excel、Word、PDF文档的操作大全 Python自动化办公全攻略之Excel/Word/PDF/邮件批量处理 Python自动化办公之使用Pandas玩转Excel数据处理全攻略 Python自动化办公之处理CSV和Excel文件的操作指南 使用Python自动化处理Excel的脏数据
  • 目录
    • 一、问题背景与解决方案概述
    • 二、场景示例
    • 三、全部代码实现
    • 四、方法优势
    • 五、复杂场景扩展
    • 六、快速上手指南

    每个月底整理各部门提交的Excel表格,手动加总数据、处理空值、合并重复姓名……这些重复劳动既耗时又容易出错。

    其实用Python写个简单脚本,几分钟就能搞定。

    比如收到这样的表格data260202.xlsx:

    需要按姓名汇总各月数据,还要处理空值和可能的重复姓名。

    import pandas as pd
    
    # 读取数据
    df = pd.read_excel('data260202.xlsx')
    
    # 清洗姓名列
    df['名称'] = df['名称'].astype(str).str.strip()
    df = df[df['名称'] != '']
    
    # 自动识别月份列(除“名称”外的所有列)
    month_cols = [col for col in df.columns if col != '名称']
    
    # 空值转0,非数字转0
    for col in month_cols:
        df[col] = pd.to_numeric(df[col], errors='coerce').fillna(0)
    
    # 按姓名汇总
    result = df.groupby('名称', as_index=False)[month_cols].sum()
    
    # 添加总计并排序
    result['总计'] = result[month_cols].sum(axis=1)
    result = result.sort_values('名称').reset_index(drop=True)
    
    # 输出结果
    print(result.to_string(index=False))
    result.to_excel('月度汇总报表.xlsx', index=False)
    

    • 自动适配月份:新增“4月”“5月”列无需修改代码,只要列名不是“名称”都会被纳入计算
    • 空值友好:空白单元格、文字内容自动转为0,避免报错
    • 合并重复项:同名人员的数据自动累加
    • 结果可复用:同时输出到控制台和Excel,方便核对与存档

    运行后生成的报表:

    1.列名含“月”字但格式杂乱

    改用:

    month_cols = [col for col in df.columns if '月' in str(col)]

    2.跨年数据(如“2026年1月”)

    用正则匹配:

    import re
    month_cols = [col for col in df.columns 
                  if re.search(r'd+月$|d+年d+月', str(col))]

    3.需要按部门+姓名两级汇总

    假设表格有“部门”列:

    result = df.groupby(['部门', '名称'])[month_cols].sum().reset_index()

    • 安装依赖:pip install pandas openpyxl
    • 将Excel文件与脚本放在同一目录
    • 运行脚本,自动生成月度汇总报表.xlsx

    适合财务、运营、项目管理等需要定期汇总数据的岗位。某电商团队用类似脚本将月度报表处理时间从2小时缩短到10秒,且再未出现手工计算错误。

    代码虽短,解决的是实实在在的重复劳动。把机械工作交给程序,人去做更有价值的事。

    到此这篇关于Python自动化处理Excel表格的方法详解的文章就介绍到这了,更多相关Python自动化处理Excel内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • 使用Python实现Excel表格处理自动化的方法技巧
    • Python实现Excel数据自动化处理的全过程
    • Python自动化处理Excel、Word、PDF文档的操作大全
    • Python自动化办公全攻略之Excel/Word/PDF/邮件批量处理
    • Python自动化办公之使用Pandas玩转Excel数据处理全攻略
    • Python自动化办公之处理CSV和Excel文件的操作指南
    • 使用Python自动化处理Excel的脏数据

    站内搜索