如何按Dept_Name分组统计Placed列值为1的行数?
解决方法
假设你的DataFrame名为df,可以通过以下两种方式实现按部门统计Placed值为1的行数:
方法一:groupby + sum直接统计
由于Placed列的1对应布尔值True、0对应False,对分组后的Placed列求和,即可得到每组中Placed == 1的行数:
result = df.groupby('Dept_Name')['Placed'].sum().reset_index() result.columns = ['Dept_Name', 'Count(Placed == 1)']
方法二:groupby + agg自定义逻辑
如果需要更明确的条件判断,可结合agg方法和lambda表达式实现:
result = df.groupby('Dept_Name')['Placed'].agg( lambda x: (x == 1).sum() ).reset_index() result.columns = ['Dept_Name', 'Count(Placed == 1)']
示例验证
若原始数据包含足够多的样本(比如A部门3个1、B部门4个1、C部门0个1),运行上述代码后将得到你预期的输出:
| Dept_Name | Count(Placed == 1) |
|---|---|
| A | 3 |
| B | 4 |
| C | 0 |
内容的提问来源于stack exchange,提问作者Graleon3
相关产品推荐
相关产品推荐

