如何统计含不同值的列的计数,按agent-name分组输出多维度统计结果
统计实现方案
1. SQL 语句实现(适配大多数关系型数据库)
假设你的原始表名为 agent_records,执行以下查询即可得到目标结果:
SELECT `agent-name`, COUNT(DISTINCT qa_agent) AS `Count of qa agent`, SUM(CASE WHEN position = 'fatal' THEN 1 ELSE 0 END) AS `Count Fatal count`, SUM(CASE WHEN position = 'non fatal' THEN 1 ELSE 0 END) AS `Count Non fatal` FROM agent_records GROUP BY `agent-name`
逻辑说明:
- 按
agent-name字段分组聚合 - 用
COUNT(DISTINCT)实现qa_agent的去重计数 - 条件求和统计不同position的记录数,满足对应条件的记录记1、否则记0,求和值就是对应分类的总条数
2. Python Pandas 实现(适用于本地DataFrame数据处理)
如果数据已经加载为Pandas DataFrame对象,可用以下代码统计:
import pandas as pd # 此处df替换为你自己的原始DataFrame变量名 stat_result = df.groupby('agent-name', as_index=False).agg( Count_of_qa_agent = ('qa_agent', 'nunique'), Count_Fatal_count = ('position', lambda x: (x == 'fatal').sum()), Count_Non_fatal = ('position', lambda x: (x == 'non fatal').sum()) ) # 重命名列匹配你的输出要求 stat_result.columns = ['agent-name', 'Count of qa agent', 'Count Fatal count', 'Count Non fatal']
内容的提问来源于stack exchange,提问作者Shadywolf21
相关产品推荐
相关产品推荐

