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

如何按出现顺序获取pandas Series的唯一值(DataFrame场景)

嘿,这个需求太常见啦!不用费劲写遍历和映射表,Pandas本身就有优雅的方法帮你按出现顺序获取唯一值,完全避开np.unique()打乱顺序的问题~

下面给你两个最常用的方案:

方案1:直接用Series.unique()

从Pandas 0.15.0版本开始,Series.unique()就会严格保留元素第一次出现的顺序,返回的是numpy数组,转成列表只需要加个.tolist()就行。

代码示例:

# 获取TEST_TXT列的有序唯一值列表
ordered_unique = df['TEST_TXT'].unique().tolist()
print(ordered_unique)
# 输出:['Continuity_PPMU XSCI', 'Continuity_PPMU XSCO', …]

方案2:用drop_duplicates()

这个方法返回的是一个去重后的Series(同样保留首次出现顺序),如果之后你还需要对这些唯一值做Pandas相关操作(比如关联其他数据、筛选),这个方法会更灵活,转列表同样用.tolist():

ordered_unique = df['TEST_TXT'].drop_duplicates().tolist()

为什么不用np.unique()?

np.unique()的底层是先排序再去重,所以会打乱原始顺序,而上面两个Pandas方法都是基于首次出现的位置来保留唯一值,完美符合你的需求。

如果你的Pandas版本特别旧(低于0.15.0),Series.unique()可能不保留顺序,那优先用drop_duplicates()就好,这个方法在旧版本里也是按顺序去重的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 18:22:49