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

如何在Pandas中对特定列的唯一数值进行排序?

如何对DataFrame特定列的唯一值进行排序

嘿,我来帮你搞定这个问题!你写的代码报错主要是两个小细节没处理对:

  • unique是pandas Series的方法,必须加括号调用(也就是.unique()),直接写.unique只会拿到方法对象,不是实际的唯一值集合;
  • unique()返回的是numpy数组,它没有pandas里的sort_values()方法;反过来,sort_values()是Series的方法,执行后返回的是排序后的Series,但你不能直接在后面接.unique()(语法上不支持这么链式调用)。

下面给你几种正确的实现方式:

方法1:先取唯一值,转成Series后排序

这种方式最直观,先拿到所有唯一值,再用pandas的排序方法处理:

import pandas as pd

# 先获取campaign_id的唯一值,转成Series后排序
sorted_unique_ids = pd.Series(testdata['campaign_id'].unique()).sort_values()

如果需要把结果转回numpy数组,只需要加.values或者.to_numpy()就行。

方法2:先排序原列,再取唯一值

因为排序后相同的campaign_id会集中在一起,这时候取唯一值自然就是有序的:

sorted_unique_ids = testdata['campaign_id'].sort_values().unique()

这个方法代码更简洁,返回的是numpy数组,如果需要Series的话再转一下就行。

方法3:用numpy的sort直接排序唯一值数组

既然unique()返回的是numpy数组,直接用numpy的排序方法更高效:

import numpy as np

sorted_unique_ids = np.sort(testdata['campaign_id'].unique())

这个方法适合只需要有序数组的场景,性能比转Series排序更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:43:15