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

如何为Pandas中A列值相同的连续行添加格式区分

Pandas DataFrame 按列分组添加区分样式

针对你已经按A列排序好的DataFrame,以下两种方法可以实现分组区分(交替高亮/粗边框分组):

方法一:交替颜色高亮分组

利用A列值的变化标记分组,为奇偶组分配不同背景色,直观区分:

示例代码

import pandas as pd
import numpy as np

# 构造测试数据(替换为你的DataFrame)
df = pd.DataFrame({
    'A': ['X', 'X', 'X', 'Y', 'Y', 'Z', 'Z', 'Z', 'Z'],
    'B': np.random.randint(1, 10, 9),
    'C': np.random.rand(9)
})

# 生成分组ID:每遇到新的A值,ID自动+1
group_ids = df['A'].ne(df['A'].shift()).cumsum()
# 定义奇偶组的背景色(可自行调整色调)
color_map = {i: '#f0f8ff' if i % 2 == 1 else '#ffffff' for i in group_ids.unique()}

# 应用背景色样式
styled_df = df.style.apply(
    lambda row: [f'background-color: {color_map[group_ids.loc[row.name]]}' for _ in row],
    axis=1
)

# 显示样式化后的表格
styled_df

方法二:添加粗边框划分分组

为每个相同A值的行组添加顶部/底部粗边框,明确分隔不同组:

示例代码

# 找出每个组的起始行和结束行
group_starts = df['A'].ne(df['A'].shift())  # 组第一行标记为True
group_ends = df['A'].ne(df['A'].shift(-1))  # 组最后一行标记为True

# 自定义边框样式函数
def add_group_borders(row):
    idx = row.name
    style_list = []
    for _ in row:
        border_style = ''
        if group_starts.loc[idx]:
            border_style += 'border-top: 2px solid black; '
        if group_ends.loc[idx]:
            border_style += 'border-bottom: 2px solid black; '
        style_list.append(border_style)
    return style_list

# 应用边框样式
border_styled_df = df.style.apply(add_group_borders, axis=1)
border_styled_df

方法三:同时使用高亮+边框(增强区分度)

将两种样式结合,既用颜色区分,又用边框强化分组边界:

示例代码

def combine_styles(row):
    idx = row.name
    # 背景色
    bg_style = f'background-color: {color_map[group_ids.loc[idx]]}; '
    # 边框
    border_style = ''
    if group_starts.loc[idx]:
        border_style += 'border-top: 2px solid black; '
    if group_ends.loc[idx]:
        border_style += 'border-bottom: 2px solid black; '
    return [bg_style + border_style for _ in row]

combined_styled_df = df.style.apply(combine_styles, axis=1)
combined_styled_df

注意事项

  • 以上样式可通过styled_df.to_html('output.html')导出为HTML文件,保留所有样式;
  • 若导出到Excel,需使用openpyxl引擎,部分CSS样式可能需要适配Excel的支持范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 18:45:16