如何在导出Excel前用Pandas为标记行添加颜色?
给Pandas DataFrame特定行标色并导出Excel
当然可以实现,给你两种适合新手的简单方法:
方法一:用Pandas Styler快速实现
Pandas的Styler对象可以直接给DataFrame添加样式,导出带格式的Excel:
import pandas as pd # 替换成你的标记索引列表和DataFrame marked_indices = [30556, 30981, 55893] df = pd.read_excel('你的原始数据.xlsx') # 定义行高亮规则 def highlight_target_rows(row): # 行索引在标记列表里就设黄色背景,红色用#ff0000 if row.name in marked_indices: return ['background-color: #ffff00'] * len(row) return [''] * len(row) # 应用样式并导出 styled_df = df.style.apply(highlight_target_rows, axis=1) # 注意需要安装openpyxl:pip install openpyxl styled_df.to_excel('标记后的表格.xlsx', engine='openpyxl', index=False)
方法二:用XlsxWriter手动控制样式
如果需要更精细的格式控制,用XlsxWriter引擎直接操作Excel行样式:
import pandas as pd marked_indices = [30556, 30981, 55893] df = pd.read_excel('你的原始数据.xlsx') # 创建Excel写入器 writer = pd.ExcelWriter('标记后的表格.xlsx', engine='xlsxwriter') df.to_excel(writer, sheet_name='Sheet1', index=False) # 获取工作簿和工作表对象 workbook = writer.book worksheet = writer.sheets['Sheet1'] # 定义高亮样式(黄色背景) highlight_style = workbook.add_format({'bg_color': '#ffff00'}) # 给标记的行设置样式 # 注意:Excel行号从1开始,表头占第1行,数据行是DataFrame索引+2(默认0开始索引) for idx in marked_indices: excel_row_num = idx + 2 # 给整行应用样式 worksheet.set_row(excel_row_num, cell_format=highlight_style) # 保存文件 writer.close()
新手注意事项
- 确认DataFrame索引和Excel行号的对应关系:如果你的DataFrame不是默认的0起始索引,要调整
excel_row_num的计算逻辑 - 提前安装依赖库:
openpyxl或xlsxwriter,用pip install 库名即可 - 颜色代码可以替换成你需要的,比如红色是
#ff0000,蓝色是#0000ff
内容的提问来源于stack exchange,提问作者AG6789
相关产品推荐
相关产品推荐

