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

如何将Pandas groupby分组结果的Credit行拆分为列并计算相关指标

实现方案

你可以通过pivot_table透视表功能直接完成行转列,再计算对应指标,完整可运行代码如下:

import pandas as pd

# 从原始数据表直接生成目标结构
result = pd.pivot_table(
    df,
    index="BIRTH_RATE",  # 按出生率区间分组
    columns="Credit",    # 将Credit的不同取值转为列
    values="ID",         # 用ID列做计数统计
    aggfunc="count",     # 聚合逻辑为计数
    fill_value=0         # 空值补0避免计算错误
).reset_index()

# 计算总授信数和坏账率
result["Credit Total"] = result["Good"] + result["Bad"]
# 保留1位小数,和示例输出精度一致
result["Bad rate"] = (result["Bad"] / result["Credit Total"] * 100).round(1)

# 调整列顺序为你需要的结构
result = result[["BIRTH_RATE", "Credit Total", "Bad", "Good", "Bad rate"]]

如果你已经提前生成了之前分组得到的长表(记为grouped_df),也可以直接用pivot方法转换:

# 你之前生成的长表
grouped_df = df[['BIRTH_RATE', 'Credit','ID']].groupby(by=['BIRTH_RATE','Credit']).count().reset_index()

# 行转列
result = grouped_df.pivot(index="BIRTH_RATE", columns="Credit", values="ID").reset_index()
# 后续计算总数量、坏账率、调整列顺序的逻辑和上面完全一致
result["Credit Total"] = result["Good"] + result["Bad"]
result["Bad rate"] = (result["Bad"] / result["Credit Total"] * 100).round(1)
result = result[["BIRTH_RATE", "Credit Total", "Bad", "Good", "Bad rate"]]

最终输出的result就是你需要的目标表结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:36:00