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

如何在DataFrame中添加列统计每个订单的唯一产品颜色数量?

解决订单内唯一颜色数量统计的问题

嗨,这个问题我之前也碰到过,很好解决!你之前的思路方向是对的,但transform('unique')报错是因为pandas的transform方法不支持直接把'unique'当作聚合函数名——它只认count、sum、nunique这类标准化的聚合函数。

下面给你两种可行的解决方案:

方法1:直接使用nunique聚合函数(推荐)

nunique就是专门用来统计唯一值数量的聚合函数,刚好匹配你的需求,直接用transform调用它就行:

df['colors_in_basket'] = df.groupby('Order_number')['Colors'].transform('nunique')

这个方法简洁高效,会自动给每个订单的每一行填充该订单的唯一颜色数量,完美替代你之前用的count(count统计的是总条目数,包含重复项)。

方法2:用Lambda函数自定义统计逻辑

如果之后你需要扩展逻辑(比如同时保留订单内的唯一颜色列表),可以用lambda函数结合unique()和len()来实现:

# 统计唯一颜色数量
df['colors_in_basket'] = df.groupby('Order_number')['Colors'].transform(lambda x: len(x.unique()))

# 额外:如果需要保留订单内的唯一颜色列表,可以加这一列
df['unique_color_list'] = df.groupby('Order_number')['Colors'].transform(lambda x: ', '.join(x.unique()))

举个实际例子验证

假设你的数据集是这样的:

Order_numberColors
1001Red
1001Blue
1001Red
1002Green
1002Green

运行方法1的代码后,结果会变成:

Order_numberColorscolors_in_basket
1001Red2
1001Blue2
1001Red2
1002Green1
1002Green1

完全符合你想要的“每个订单中的唯一颜色数量”需求!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 10:08:11