Python DataFrame导出Excel前如何为指定行设置加粗样式
实现最后三行统计值加粗导出Excel的完整方案
常见无效配置原因
- 未指定
openpyxl作为导出引擎,pandas默认导出时不会传递样式配置 - 行定位时未基于DataFrame的实际索引匹配,导致样式偏移错位
- 混用仅适用于Jupyter前端渲染的样式规则,未适配Excel导出的样式传递逻辑
可直接复用的代码逻辑
首先安装必要依赖:pip install pandas openpyxl
在你已有的「日志解析生成DataFrame、追加min/max/mean三行统计值」的流程基础上,追加以下样式配置和导出代码:
import pandas as pd # 你已有的代码段:完成基础指标df生成、追加3行统计结果,最终DataFrame命名为train_metrics_df # ... # 精准匹配最后3行的索引位置 target_bold_rows = train_metrics_df.index[-3:] # 定义行样式规则 def set_bold_for_stat_rows(row): if row.name in target_bold_rows: # 整行所有单元格设置加粗 return ["font-weight: bold"] * len(row) return [""] * len(row) # 带样式导出Excel with pd.ExcelWriter("训练指标导出结果.xlsx", engine="openpyxl") as writer: train_metrics_df.style.apply(set_bold_for_stat_rows, axis=1)\ .to_excel(writer, sheet_name="训练全量指标", index=False)
效果校验
- 导出的Excel中,仅最后3行min/max/mean统计值为加粗格式,中间的epoch逐行训练记录保持普通字体
- 如需额外突出统计行,可在样式返回值中追加背景色配置,例如
background-color: #f5f5f5
避坑提示:不要采用导出Excel后再逐行遍历单元格设置样式的方案,该方式容易因为表头、空行的行号偏移,导致加粗位置和目标统计行错位
内容的提问来源于stack exchange,提问作者Dionisius Pratama
相关产品推荐
相关产品推荐

