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

能否基于DataFrame分组统计的nunique唯一值删除指定条件的行

完全可以用你提到的df.drop写法实现需求,以下是具体实现方案:

注意:你之前统计分组唯一值时occupation列名拼写有误,实际运行代码时请核对列名避免报错。

实现代码

方法1:按你要求的drop写法实现

# 统计每个职业分组下的name唯一值数量
occ_name_unique = df.groupby('occupation')['name'].nunique()
# 筛选出唯一值小于2的职业对应的行,删除后赋值给新df
df = df.drop(df[df['occupation'].isin(occ_name_unique[occ_name_unique < 2].index)].index)

方法2:更简洁的布尔索引写法(效果完全一致)

借助transform把分组计算结果映射到每一行,直接筛选即可:

df = df[df.groupby('occupation')['name'].transform('nunique') >= 2]

结果说明

两种写法运行后,都会删除doctor(name唯一值为1)、tailor(name唯一值为1)两个分组的所有行,最终输出和你给出的预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:09:02