You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为DataFrame每3连续行设同色背景并导出至Excel

为DataFrame每连续3行设置同组背景色

你之前的代码问题在于不管行号,统一返回黄色样式,所以所有行都是同一种颜色。下面给两种实用的实现方式:

方法一:用pandas自带的Styler自定义样式

通过行索引分组,每3行归为一组,同一组用相同背景色,不同组换颜色,实现交替效果:

import pandas as pd

# 示例DataFrame,替换成你自己的即可
df = pd.DataFrame({'A': range(10), 'B': range(10, 20)})

def highlight_rows(row):
    # 按行索引每3行分一组
    group = row.name // 3
    # 偶数组用浅黄,奇数组用浅蓝,颜色代码可自行调整
    if group % 2 == 0:
        return ['background-color: #fff2cc'] * len(row)
    else:
        return ['background-color: #cce5ff'] * len(row)

# 应用样式后导出Excel
styled_df = df.style.apply(highlight_rows, axis=1)
styled_df.to_excel('styled_data.xlsx', engine='openpyxl', index=False)

方法二:直接用xlsxwriter控制格式

如果想直接操作Excel写入过程,用xlsxwriter批量设置行格式更灵活:

import pandas as pd

df = pd.DataFrame({'A': range(10), 'B': range(10, 20)})

# 创建Excel写入器
writer = pd.ExcelWriter('grouped_color.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', index=False)
workbook = writer.book
worksheet = writer.sheets['Sheet1']

# 定义两种背景格式,颜色可自行调整
format_yellow = workbook.add_format({'bg_color': '#fff2cc'})
format_blue = workbook.add_format({'bg_color': '#cce5ff'})

# 数据总行数(加1是因为包含表头行)
total_rows = len(df) + 1

# 从第一行数据开始(表头是第0行),每3行一组设置格式
for row_num in range(1, total_rows):
    group = (row_num - 1) // 3
    if group % 2 == 0:
        worksheet.set_row(row_num, None, format_yellow)
    else:
        worksheet.set_row(row_num, None, format_blue)

writer.close()

内容的提问来源于stack exchange,提问作者baddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 13:52:10