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

Python中如何删除DataFrame行内列表重复字符串,仅保留唯一值

实现列表列去重的方法

方法1:无需保留原有顺序(代码最简)

直接利用集合自动去重的特性转换即可:

df['Name'] = df['Name'].apply(lambda x: list(set(x)))

注意:集合是无序结构,处理后列表内元素的顺序会被打乱,如果你需要保留名称第一次出现的顺序,请用下面的方法。

方法2:保留原有出现顺序

Python 3.7+版本中字典默认保留插入顺序,可通过dict.fromkeys实现有序去重:

df['Name'] = df['Name'].apply(lambda x: list(dict.fromkeys(x)))

方法3:用pandas原生操作实现(适合大表性能更优)

通过打散列表、按网格ID+名称去重后重新聚合,也能实现有序去重:

df = df.explode('Name') \
       .drop_duplicates(subset=['GRID ID', 'Name'], keep='first') \
       .groupby('GRID ID', as_index=False)['Name'] \
       .agg(list)

处理后效果示例

以你给出的AC-59行数据为例,处理后结果为:

GRID ID | Name
AC-59   | ['Laguna di Venezia', 'Laguna di Venezia: Valle Averto', 'Laguna medio-inferiore di Venezia']

所有重复名称仅保留1个,符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:27:03