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

如何用SQL或Python移除关联多行业的ID及其全部数据行?

解决方案:移除关联多行业的ID全量数据

SQL实现

方法1:子查询筛选排除ID

先通过分组找出关联多个行业的ID,再从原表中排除这些ID的所有记录:

SELECT *
FROM your_table
WHERE ID NOT IN (
    SELECT ID
    FROM your_table
    GROUP BY ID
    HAVING COUNT(DISTINCT Industry) > 1
);

方法2:窗口函数直接筛选

用窗口函数计算每个ID对应的不同行业数量,直接过滤出数量为1的记录:

SELECT ID, Date, Industry
FROM (
    SELECT 
        *,
        COUNT(DISTINCT Industry) OVER (PARTITION BY ID) AS industry_count
    FROM your_table
) t
WHERE industry_count = 1;

Python(Pandas)实现

先计算每个ID的唯一行业数,再筛选出符合条件的ID对应的所有行:

import pandas as pd

# 模拟示例数据
data = {
    'ID': ['S000123', 'S000123', 'S000456', 'S000789'],
    'Date': ['oct/1/22', 'oct/1/22', 'oct/4/22', 'oct/4/22'],
    'Industry': ['Media', 'Education', 'Auto', 'Beverage']
}
df = pd.DataFrame(data)

# 计算每个ID的唯一行业数量
id_industry_count = df.groupby('ID')['Industry'].nunique()
# 筛选出仅关联一个行业的ID
valid_ids = id_industry_count[id_industry_count == 1].index
# 过滤原数据
result_df = df[df['ID'].isin(valid_ids)]

print(result_df)

运行后输出结果:

ID      Date  Industry
2  S000456  oct/4/22      Auto
3  S000789  oct/4/22   Beverage

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 13:01:16