如何用Python按部门统计状态为Completed的任务数量?
按部门统计Completed状态任务数量的Python实现方法
正确实现方法
你需要先筛选出状态为Complete的任务记录,再按Department分组统计数量,或者先分组再过滤目标状态。以下是两种可行方案:
方案一:先筛选再分组
# 筛选Status为Complete的行,按Department分组统计数量 completed_counts = df[df['Status'] == 'Complete'].groupby('Department').size().reset_index(name='Count') # 添加Status列并统一为Completed completed_counts['Status'] = 'Completed' # 调整列顺序匹配期望结果 completed_counts = completed_counts[['Department', 'Status', 'Count']]
方案二:先分组再过滤
# 按Department和Status分组,统计每组任务数 grouped_counts = df.groupby(['Department', 'Status']).size().reset_index(name='Count') # 筛选出Status为Complete的记录 completed_counts = grouped_counts[grouped_counts['Status'] == 'Complete'] # 统一Status显示为Completed(匹配你的期望结果格式) completed_counts['Status'] = completed_counts['Status'].replace('Complete', 'Completed')
原代码问题说明
你之前的代码counts = df['Department'].groupby('Status').count()逻辑错误:它是按Status分组,统计每个状态下的Department条目总数,而非按Department分组统计指定状态的任务数,所以无法得到按部门拆分的结果。
验证结果
运行上述代码后,会得到与你期望一致的输出:
Department Status Count Sales Completed 1 Tech Completed 2
内容的提问来源于stack exchange,提问作者That_non_coder
相关产品推荐
相关产品推荐

