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

如何用Pandas分组打印列唯一值?ADO_name列报错求助

Pandas获取列唯一值及分组唯一值的问题修复

嗨,我来帮你捋捋问题出在哪以及怎么修复~首先咱们拆解两个核心问题:一是打印整个数据集ADO_name列唯一值报错的常见原因,二是分组后获取列唯一值的正确操作方法。

一、先解决ADO_name列唯一值报错的常见情况

你遇到的报错大概率是以下两种场景之一:

1. 列名拼写错误(最常见)

Pandas对列名区分大小写,如果代码里的列名和数据集实际列名不一致(比如写成ado_name、ADO_Name),就会触发KeyError。

修复方法:
先确认数据集的真实列名,运行这行代码查看所有列:

print(df.columns)

确认ADO_name的准确拼写后,再用正确的方式获取唯一值:

# 标准写法
print(df['ADO_name'].unique())
# 如果列名没有空格,也可以用点语法
print(df.ADO_name.unique())

2. 错误地对整个DataFrame调用unique()

如果你写了df.unique(),同样会报错——因为unique()是Series的专属方法,不能直接用在整个DataFrame上,必须先选中目标列(转为Series)再调用。

二、分组中打印列唯一值的正确方法

如果报错出现在分组操作后,大概率是因为你对DataFrameGroupBy对象直接调用了unique(),而这个对象并没有这个方法。

先拿示例数据集演示:

import pandas as pd

# 示例数据
data = {
    'Department': ['HR', 'HR', 'Tech', 'Tech', 'Tech'],
    'ADO_name': ['Lily', 'Tom', 'Lily', 'Jack', 'Jack']
}
df = pd.DataFrame(data)

正确写法1:分组后选中目标列,再调用unique()

先通过groupby指定分组列,再选中ADO_name列(此时转为SeriesGroupBy对象,支持unique()方法):

# 按Department分组,获取每组的ADO_name唯一值
grouped_unique = df.groupby('Department')['ADO_name'].unique()
print(grouped_unique)

输出结果:

Department
HR        [Lily, Tom]
Tech    [Lily, Jack]
Name: ADO_name, dtype: object

正确写法2:用agg()聚合函数实现

如果需要更灵活的自定义操作,也可以用agg()配合lambda函数:

grouped_unique = df.groupby('Department')['ADO_name'].agg(lambda x: x.unique())
print(grouped_unique)

效果和上面完全一致。

总结关键要点

  • 获取单列唯一值:必须先选中目标列(df['列名']),再调用unique()
  • 分组后获取唯一值:分组后要明确选中目标列,再调用unique()或用agg()聚合
  • 永远先确认列名拼写,大小写、空格都不能出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:39:22