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

如何去除pandas列中存储的numpy数组内的重复元素

问题原因分析

  • np.unique方法默认会对去重后的元素执行升序排序,无法保留元素在原数组中的出现顺序,和示例要求的输出顺序不匹配。
  • ddpe方法的入参是numpy数组类型,直接传入dict.fromkeys会将整个数组识别为单个键,无法实现逐元素去重的效果。

正确实现方案

方案1:利用字典特性保留原顺序(Python3.7+通用,推荐)

改写去重函数,先将numpy数组转为普通列表再执行去重:

def ddpe(a):
    # 先转numpy数组为列表,再用字典去重保留元素首次出现顺序
    return list(dict.fromkeys(a.tolist()))

# 生成新列
df['new_column'] = df['B'].apply(ddpe)

方案2:基于numpy实现保留顺序的去重

如果希望用numpy实现,可通过返回索引的方式控制输出顺序:

def u_value(a):
    vals, idx = np.unique(a, return_index=True)
    # 按元素首次出现的索引排序,保留原顺序
    return vals[np.argsort(idx)].tolist()

# 生成新列
df['new_column'] = df['B'].apply(u_value)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:06:04