You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pandas groupby分组结果拆分为pass、fail两独立列?

解决方法

你得到的多级索引Series只要做一层轴向转换即可匹配目标宽表格式,两种实现方案如下:

方案1:基于现有groupby逻辑修改

在你原有分组计数的代码后加unstack操作即可:

# 分组计数后转宽表,无对应统计值的位置自动填充0
count_df = df.groupby(['Channel', 'Flag']).size().unstack(fill_value=0)
# 适配你现有绘图代码的大写列名要求,重命名列
count_df = count_df.rename(columns={"pass": "Pass", "fail": "Fail"})
# 如果需要将Channel从索引转为普通列,增加下面一行
count_df = count_df.reset_index()

方案2:直接用交叉表一步生成

用pd.crosstab可以更简洁的实现分组计数+转宽表的逻辑:

count_df = pd.crosstab(df["Channel"], df["Flag"])
# 后续重命名、重置索引的操作和方案1一致
count_df = count_df.rename(columns={"pass": "Pass", "fail": "Fail"}).reset_index()

注意事项

  • 如果你的绘图代码默认将Channel作为索引取值,不需要转为普通列的话,跳过reset_index()步骤即可
  • fill_value=0参数可以覆盖部分Channel无pass/fail记录的场景,避免统计结果出现空值报错

内容的提问来源于stack exchange,提问作者Marc-Olivier Duceppe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 14:18:04