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

Pandas 高效获取对应另一列存在至少2个不同值的Name列值的方法

高效实现方案

核心思路是使用pandas原生的groupby+nunique向量化运算,避免Python层的循环遍历,底层基于C实现,在大数据集下性能远高于自行编写的for循环校验逻辑。


示例代码

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({'Name':['A','A','A','B','C','C','D','D'], 'Value':["6","2","1","1","2","2","3","2"]})

# 按Name分组,统计每个Name对应的Value唯一值数量,筛选出数量>=2的Name,转为列表
result = df.groupby('Name')['Value'].nunique()[lambda x: x >= 2].index.tolist()
print(result)

输出结果

['A', 'D']

补充优化方案

如果你的数据集里单Name存在大量重复的Value条目,可以先做去重预处理再分组统计,进一步降低聚合计算量:

# 先按Name+Value去重,再统计每个Name的条目数,筛选条目数>=2的Name
result = df.drop_duplicates(['Name','Value']).groupby('Name').size()[lambda x: x>=2].index.tolist()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 15:57:01