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

如何合并DataFrame中列表类型列的元素并去重?

解决DataFrame列表列合并去重问题

你当前的方法df['b'].drop_duplicates().to_list()是对整个子列表去重,而非提取子列表内的元素合并,所以得到的是列表的列表。以下两种方法可实现需求:

方法1:用explode拆分后去重

explode会将列表类型的列元素拆分为单独行,后续再去重转列表即可:

# 拆分列表元素为单行
exploded_col = df['b'].explode()
# 去重并转为目标列表
unique_list = exploded_col.drop_duplicates().tolist()

方法2:用itertools.chain合并所有子列表

通过chain直接将所有子列表的元素拼接成一个迭代器,再去重(用dict.fromkeys可保留元素首次出现的顺序):

import itertools

# 合并所有子列表的元素
combined_elements = itertools.chain.from_iterable(df['b'])
# 去重并转为列表(保持顺序)
unique_list = list(dict.fromkeys(combined_elements))

两种方法都能得到你需要的['Red', 'Blue', 'Green', 'Purple', 'Yellow']结果:小数据量用explode更直观,大数据量用itertools效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:36:22