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

如何统计Pandas DataFrame列中逗号分隔字符串的唯一值数量

实现方法

核心逻辑是先统一列值类型为字符串,按逗号拆分后通过集合去重统计长度,全程用pandas内置向量化方法,性能优于逐行循环,同时兼容x列所有存储类型。

完整实现代码

import pandas as pd

# 测试用DataFrame(可替换为实际业务数据)
df = pd.DataFrame({
    'x': ['5,5,6,7,8,6,8', '5,9,8,0', '5,9,8,0', '3,2', '5,5,6,7,8,6,8']
})

# 新增Unique_in_x列计算唯一值个数
df['Unique_in_x'] = (
    df['x']
    .astype(str)  # 统一转字符串,兼容数字、混合类型等所有存储场景
    .str.split(',')  # 按逗号把单元格内容拆分为值列表
    .apply(lambda cell_val: len(set(cell_val)))  # 转集合自动去重后计算长度
)

结果验证

执行代码后得到的输出完全匹配预期结果:

xUnique_in_x
5,5,6,7,8,6,84
5,9,8,04
5,9,8,04
3,22
5,5,6,7,8,6,84

边界场景适配

如果数据里逗号前后存在多余空格(比如"5, 6 , 8"这类带格式的字符串),可以把拆分逻辑替换为正则拆分,自动忽略空格干扰,避免把带空格的同值识别为不同项:

df['Unique_in_x'] = (
    df['x']
    .astype(str)
    .str.split(r'\s*,\s*')  # 匹配逗号前后任意数量的空白字符
    .apply(lambda cell_val: len(set(cell_val)))
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 22:54:38