如何用Pandas按Use_ID分组统计产品有效模式的使用次数?
解决方案
你可以通过以下代码完成统计,逻辑简洁且贴合需求:
import pandas as pd # 假设数据已加载到df中 # 按Use_ID分组,提取每组唯一的Mode值(自动过滤同模式误触记录) unique_mode_groups = df.groupby('Use_ID')['Mode'].unique() # 初始化统计计数器 count_mode0 = 0 count_mode1 = 0 count_both = 0 # 遍历每个Use_ID的唯一模式集合,分类统计 for modes in unique_mode_groups: has_0 = 0 in modes has_1 = 1 in modes if has_0 and not has_1: count_mode0 += 1 elif has_1 and not has_0: count_mode1 += 1 else: count_both += 1 # 生成符合期望格式的结果表 result = pd.DataFrame({ 'Mode0': [count_mode0], 'Mode1': [count_mode1], 'Both': [count_both] }) print(result)
步骤说明
- 过滤误触记录:利用
groupby('Use_ID')['Mode'].unique()直接获取每个使用记录(Use_ID)下的唯一模式,重复的同模式点击会被自动排除,无需额外处理。 - 分类判断统计:对每个Use_ID的唯一模式集合做三类判断:
- 仅包含0 → 计入Mode0统计
- 仅包含1 → 计入Mode1统计
- 同时包含0和1 → 计入Both统计
- 输出结果:将统计结果整理成DataFrame,格式完全匹配你给出的期望输出。
结果验证
针对你提供的数据集,运行代码后会得到:
| Mode0 | Mode1 | Both |
|---|---|---|
| 3 | 4 | 3 |
内容的提问来源于stack exchange,提问作者Yount Shi
相关产品推荐
相关产品推荐

