如何在pandas中筛选出对应company_id存在多个唯一值的id所属行
筛选id对应多唯一company_id行的实现方案
以下方案均适配300万行量级数据,无冗余计算,效率优先:
Python Pandas 本地数据集处理
import pandas as pd # 读取本地数据集,可按需替换为read_excel等其他读取方法 df = pd.read_csv("你的数据集路径.csv") # 直接获取所有符合要求的全量行(无去重,保留原始行的所有字段和顺序) filtered_df = df[df.groupby("id")["company_id"].transform("nunique") > 1] # 仅获取符合条件的id列表 target_ids = df.groupby("id")["company_id"].nunique()[lambda x: x>1].index.tolist() # 仅获取符合条件的行索引 target_index = df[df.groupby("id")["company_id"].transform("nunique") > 1].index.tolist()
SQL 库内数据集处理(适配MySQL/PostgreSQL等主流数据库)
-- 获取所有符合要求的全量行 SELECT * FROM 你的表名 WHERE id IN ( SELECT id FROM 你的表名 GROUP BY id HAVING COUNT(DISTINCT company_id) > 1 ); -- 仅获取符合条件的id列表 SELECT id FROM 你的表名 GROUP BY id HAVING COUNT(DISTINCT company_id) > 1;
提示:SQL场景下提前给
id字段添加索引,可大幅降低查询耗时。
内容的提问来源于stack exchange,提问作者jlaralopez
相关产品推荐
相关产品推荐

