使用Python清理Excel无效表头并为指定列头添加高亮样式
Python优化Excel格式实现方案
需求梳理
需要通过Python完成两项Excel格式调整:
- 移除表头中所有以
Unnamed:开头的无效表头标识,对应列下方的行号数据完整保留 - 为后续追加的DataFrame对应的标题列、mean列、max列的列头添加高亮效果
效果参考: - 处理前:

- 处理后:

实现步骤
使用pandas做数据层处理,openpyxl做样式调整,先安装依赖:
pip install pandas openpyxl
1. 处理Unnamed无效表头
读取文件后直接批量重置列名,把所有Unnamed开头的列名置空即可,不会影响列内存储的行号数据:
import pandas as pd from openpyxl import load_workbook from openpyxl.styles import PatternFill # 读取原始Excel文件 df = pd.read_excel("你的原始文件路径.xlsx") # 批量清理Unnamed开头的无效表头 df.columns = ["" if str(col).startswith("Unnamed:") else col for col in df.columns] # 此处插入你追加统计df(带标题、mean、max列的DataFrame)的拼接逻辑 # 示例:final_df = pd.concat([df, 统计结果df], axis=1) final_df = df # 导出清理完表头的临时文件 temp_file = "temp.xlsx" final_df.to_excel(temp_file, index=False)
2. 给指定列头添加高亮
加载临时文件,定位到需要高亮的列,给表头单元格设置填充色即可:
# 加载临时工作簿 wb = load_workbook(temp_file) ws = wb.active # 定义高亮样式,示例为明黄色,可通过修改RGB值自定义颜色 yellow_fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid") # 配置需要高亮的列名,替换为你实际的列名 need_highlight_cols = ["标题列实际名称", "mean", "max"] header_line_num = 1 # 表头所在行号,默认第一行 # 遍历表头行,给目标列设置高亮 for col_pos, cell_val in enumerate([cell.value for cell in ws[header_line_num]], start=1): if cell_val in need_highlight_cols: ws.cell(row=header_line_num, column=col_pos).fill = yellow_fill # 保存最终结果文件 wb.save("格式优化完成.xlsx")
补充说明
如果Unnamed列是你自己拼接DataFrame时生成的行号列,可以直接在拼接时给该列设置空列名,从根源避免导出时出现Unnamed标识。如果需要调整高亮颜色,替换
PatternFill里的16进制RGB色值即可。
内容的提问来源于stack exchange,提问作者Poptropica
相关产品推荐
相关产品推荐

