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

基于条件统计distinct ID数量:按类别统计符合分数要求的ID数

问题说明

我有如下结构的数据集:

CategoryScoreID
A961
A951
A952
A952
B962
B952
B962
C973
C963
C973

需要针对每个Category,统计拥有2个及以上Score < 97的distinct ID的数量,期望输出格式如下:

CategoryCount
A2
B1
C0
基于Pandas的解决方案

以下是实现需求的具体代码,逻辑清晰易懂:

import pandas as pd

# 构造原始数据
data = {
    'Category': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
    'Score': [96, 95, 95, 95, 96, 95, 96, 97, 96, 97],
    'ID': [1, 1, 2, 2, 2, 2, 2, 3, 3, 3]
}
df = pd.DataFrame(data)

# 1. 先筛选出分数小于97的记录
filtered = df[df['Score'] < 97]

# 2. 按类别和ID分组,统计每个ID在对应类别下有多少条符合分数条件的记录
id_score_count = filtered.groupby(['Category', 'ID']).size().reset_index(name='valid_score_count')

# 3. 筛选出符合条件的记录数≥2的ID
qualified_ids = id_score_count[id_score_count['valid_score_count'] >= 2]

# 4. 按类别统计合格ID的数量,同时补全所有原始类别(保证Count为0的类别也能显示)
result = qualified_ids.groupby('Category').size().reindex(df['Category'].unique(), fill_value=0).reset_index(name='Count')

print(result)

运行代码后会输出:

Category  Count
0        A      2
1        B      1
2        C      0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:50:44