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

如何在特定列值变化时交替设置整行颜色?

实现按column2值变化切换整行背景色

要实现当column2列的值变化时,整行背景色交替切换的效果,可以利用pandas的Styler功能完成,具体代码和步骤如下:

完整代码示例

import pandas as pd

df1 = pd.DataFrame([
    ['A1',  'B2',  'C1',   'D1'],
    ['A2',  'B2',  'C2',   'D2'],
    ['A3',  'B2',  'C3',   'D3'],
    ['A4',  'B4',  'C4',   'D4'],
    ['A5',  'B4',  'C5',   'D5'],
    ['A6',  'B4',  'C6',   'D6'],
    ['A7',  'B6',  'C7',   'D7'],
    ['A8',  'B6',  'C8',   'D8'],
    ['A9',  'B10', 'C9',   'D9'],
    ['A10', 'B10', 'C10',  'D10'],
    ['A11', 'B10', 'C11',  'D11'],
    ['A12', 'B10', 'C12',  'D12'],
    ['A13', 'B14', 'C13',  'D13'],
    ['A14', 'B14', 'C14',  'D14'],
    ['A15', 'B14', 'C15',  'D15']], 
   columns=['column1', 'column2', 'column3', 'column4'])

# 生成连续相同column2值的分组编号
group_ids = df1['column2'].ne(df1['column2'].shift()).cumsum()

# 定义行样式函数:按分组奇偶性切换背景色
def color_groups(row):
    group_id = group_ids[row.name]
    # 奇数分组用浅灰色背景,偶数分组保持默认,可自行修改颜色值
    return ['background-color: #f0f0f0' if group_id % 2 == 1 else '' for _ in row]

# 应用样式并展示表格
styled_table = df1.style.apply(color_groups, axis=1)
styled_table

关键步骤说明

  • 生成分组编号:df1['column2'].ne(df1['column2'].shift())会判断当前行的column2值是否和上一行不同,返回布尔序列;再用cumsum()累加,就能把连续相同column2值的行归为同一个分组,得到唯一的分组编号。
  • 设置行样式:自定义的color_groups函数会根据每行所属分组的奇偶性,返回对应的背景色样式。你可以根据需求修改颜色代码(比如换成#e6f7ff这种浅蓝色),实现不同的视觉效果。
  • 应用样式:通过style.apply(color_groups, axis=1)把样式函数应用到每一行,最终生成符合要求的交替色表格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 14:10:34