如何基于现有DataFrame按部门和年份统计入职员工数量?
按部门和年份统计入职员工总数的正确实现
你之前的代码不符合预期,核心问题是只选取了dept_name和Year两列做分组统计——这两列本身就是分组键,每组内的这两列值完全一致,count()只会返回1(非空情况下),根本没统计到实际的员工数量。下面是两种靠谱的解决方法:
方法1:用size()直接统计组内行数
size()会直接返回每个分组的元素总个数,也就是对应部门对应年份的入职员工数,最后用reset_index()把分组索引转成普通列,再给统计列起个明确的名字:
# 生成统计结果DataFrame emp_count_result = emp_dept_sal_s.groupby(['dept_name', 'Year']).size().reset_index(name='入职员工总数')
方法2:指定员工标识列做count()
如果你的DataFrame里有员工唯一标识列(比如emp_id、employee_number这类),可以针对该列做count(),这样统计的是每个分组内该列的非空值数量,也就是有效员工数:
# 假设员工标识列是emp_id,生成统计结果 emp_count_result = emp_dept_sal_s.groupby(['dept_name', 'Year'])['emp_id'].count().reset_index(name='入职员工总数')
这两种方法都能得到你需要的「每年各部门入职员工总数」的统计结果,选哪种取决于你的数据结构和需求。
内容的提问来源于stack exchange,提问作者Aviv1002
相关产品推荐
相关产品推荐

