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

在Pandas中聚合列表行并保留唯一值的简便方法

Pandas按索引聚合列表并保留唯一值的实现方案

方法一:groupby结合自定义去重函数

假设你的Series名为s,可以通过分组后合并所有列表元素并去重实现:

import pandas as pd

# 构造示例数据
s = pd.Series([[41, 13, 4, 50], [41, 13, 4, 5]], index=['A', 'A'])

# 聚合去重(不保证元素顺序)
result = s.groupby(level=0).apply(lambda x: list({num for sublist in x for num in sublist}))

# 聚合去重并保留元素首次出现的顺序
result = s.groupby(level=0).apply(lambda x: list(dict.fromkeys([num for sublist in x for num in sublist])))

方法二:explode+分组去重+聚合

这种方法逻辑更直观,适合处理大数据量:

# 展开列表为单个元素行
exploded_s = s.explode()
# 按索引分组取唯一值,再重新聚合为列表
result = exploded_s.groupby(level=0).unique().apply(list)

执行后得到的结果如下:

index
A    [41, 13, 4, 50, 5]
dtype: object

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:50:34