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

如何为Pandas DataFrame的list_text列列表元素设置不同颜色?

为Pandas DataFrame列表元素按位置设置颜色

你可以通过Pandas的Styler工具实现这个需求,自定义样式函数为list_text列中每个列表元素按位置分配颜色,具体实现代码如下:

import pandas as pd

df = pd.DataFrame({
    'list_text': [['t4', 't5', 't6'], ['t7', 't1', 't2', 't3']],
    'list_userid': [['u1', 'u2', 'u4'], ['u3']],
    'list_date': [['2021-01', '2021-02'], ['2021-01']]
})

# 定义位置与颜色的映射关系,可根据需求扩展
color_map = {
    0: 'red',
    1: 'blue',
    2: 'green',
    3: 'orange'
}

def color_list_elements(val):
    styled_parts = []
    for idx, item in enumerate(val):
        # 按索引取对应颜色,未定义的位置默认黑色
        color = color_map.get(idx, 'black')
        styled_parts.append(f'<span style="color: {color}">{item}</span>')
    return ', '.join(styled_parts)

# 对list_text列应用样式,escape=False允许解析HTML标签
styled_table = df.style.applymap(color_list_elements, subset=['list_text'])

# 在Jupyter Notebook或类似环境中直接运行即可查看带颜色的表格
styled_table

实现说明

  • 自定义函数color_list_elements会遍历每个单元格的列表元素,根据元素的索引位置从color_map中获取对应颜色,用HTML的<span>标签包裹元素并设置颜色样式。
  • 使用style.applymap将样式函数仅应用到list_text列,设置escape=False是核心,确保Pandas渲染HTML样式而非转义标签。
  • 你可以根据需要扩展color_map,添加更多位置对应的颜色规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 04:42:44