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

如何在分组内为Pandas DataFrame行分配唯一颜色?

解决方案

假设你使用Pandas库处理DataFrame,以下是实现需求的具体代码:

1. 构造示例DataFrame

import pandas as pd

df = pd.DataFrame({
    'area': ['worlds', 'twisted', 'personnel', 'available', 'available'],
    'cluster': [0.0, 2.0, 1.0, 2.0, 2.0]
})

2. 定义颜色库与分组分配逻辑

# 自定义可选颜色列表(可根据需求扩展)
color_pool = ['red', 'green', 'blue', 'yellow', 'orange']

def assign_unique_color(group):
    # 提取当前区域内的唯一cluster值
    unique_clusters = group['cluster'].unique()
    # 建立cluster到颜色的映射关系
    color_mapping = {cluster: color_pool[i % len(color_pool)] for i, cluster in enumerate(unique_clusters)}
    # 为每行匹配对应颜色
    group['color'] = group['cluster'].map(color_mapping)
    return group

# 按area分组处理,保证每个区域内的颜色分配独立
df = df.groupby('area').apply(assign_unique_color).reset_index(drop=True)

3. 输出结果

运行后得到的DataFrame如下:

areaclustercolor
worlds0.0red
twisted2.0red
personnel1.0red
available2.0red
available2.0red

若某个area内存在多个不同cluster,会自动分配不同颜色。比如某区域有3个唯一cluster,会依次对应red、green、blue,完全满足"同一区域内cluster颜色唯一、不同区域颜色可重复"的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:20:24