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

Pandas按age group和churn分组后如何计算多列churn=1/churn=0的比值

实现方案

前提说明

  • 假设你现有的多索引分组DataFrame名为grouped_df,索引第一层为age group,第二层为churn,数值列为salary、debt、investments
  • 如果是未分组的原始用户数据,需要先完成分组聚合,代码参考下文

核心实现代码

如果已经是分组聚合后的多索引DataFrame:

# 将churn索引层转换为列层级
unstacked_df = grouped_df.unstack(level='churn')
# 计算各字段churn=1 / churn=0的比值
result_df = unstacked_df.xs(1, axis=1, level=1) / unstacked_df.xs(0, axis=1, level=1)
# 可选:给列名添加_ratio后缀区分原字段
result_df = result_df.add_suffix('_ratio')

如果是未分组的原始数据,先执行分组聚合:

# 按age group、churn分组,对数值列做聚合(此处用均值,可按需替换为sum、median等聚合函数)
grouped_df = df.groupby(['age group', 'churn'])[['salary', 'debt', 'investments']].mean()
# 再执行上面的比值计算逻辑即可

结果说明

输出的result_df自动以age group为行索引,列对应各数值字段的churn比值,完全符合需求。

内容的提问来源于stack exchange,提问作者Alf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:39:01