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

如何在Pandas中使用set()提取指定列的唯一值?

用set()获取Pandas DataFrame指定列的唯一值

当然可以用set()提取DataFrame指定列的唯一值,但你的操作步骤存在问题,导致拿到了索引而非目标列值。以下是正确的实现方式:

1. 先正确构造示例DataFrame

你给出的原始数据格式不符合Pandas要求,先把它转换成标准的DataFrame:

import pandas as pd

# 按描述,第一列是索引,第二列是目标列,后两列为其他数据
data = [
    [-10, 2, 5],
    [24, 5, 10],
    [30, 3, 6],
    [30, 2, 1],
    [30, 4, 5]
]
# 指定索引和列名,col_target为你要提取的目标列
df1 = pd.DataFrame(data, index=[0, 1, 2, 3, 4], columns=['col_target', 'col2', 'col3'])

2. 提取目标列并转成set

直接定位到目标列,将其转换成集合即可:

# 提取目标列的唯一值
unique_values = set(df1['col_target'])
print(unique_values)  # 输出: {-10, 24, 30}

如果你的DataFrame列名是数字(比如目标列是列0),代码改为:

unique_values = set(df1[0])

你的操作错误分析

  • 参数拼写错误:column应该是columns,构造DataFrame时参数名错误会导致列处理异常
  • 不必要的转置操作:转置后你拿到的是原DataFrame的列索引,而非目标列数据
  • 列提取方式错误:没有直接定位到目标列,反而通过转置混淆了数据结构

另外,也可以先用Pandas自带的unique()方法获取唯一值数组,再转成set,效果一致:

unique_values = set(df1['col_target'].unique())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:35:18