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

如何为Pandas DataFrame同列不同行相等值设置样式(跳过首列)

Pandas实现列内值全相等单元格着色(跳过第一列)

示例DataFrame

Value 1Value 2Value 3
656
6510

需求说明

跳过第一列,对同一列中所有行值完全相等的单元格设置背景色(示例中Value 2列需被着色)。

解决方案

利用Pandas的Styler对象,结合按列处理的apply方法实现:

  1. 创建示例DataFrame
import pandas as pd

df = pd.DataFrame({
    'Value 1': [6, 6],
    'Value 2': [5, 5],
    'Value 3': [6, 10]
})
  1. 定义着色函数
def color_equal_column(col):
    # 跳过第一列
    if col.name == df.columns[0]:
        return [''] * len(col)
    # 判断列内所有值是否唯一(即全相等)
    if col.nunique() == 1:
        # 设置背景色为浅绿色,可自行调整颜色代码
        return ['background-color: #90EE90'] * len(col)
    return [''] * len(col)
  1. 应用样式并展示
styled_df = df.style.apply(color_equal_column, axis=0)
# 在Jupyter环境运行可直接显示带样式的表格
styled_df

补充说明

  • 导出带样式的结果:
    • 导出为HTML:styled_df.to_html('styled_table.html')
    • 导出为Excel:需安装openpyxl库,执行styled_df.to_excel('styled_table.xlsx', engine='openpyxl')
  • 背景色代码可按需替换,比如#FFCCCB(浅红色)等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:35:24