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

如何在Pandas透视表中添加非活跃率计算列?

解决Pandas透视表添加非活跃率列的问题

你的透视表生成后是多层列索引(MultiIndex),直接用pivot_table.count['active']无法正确获取数据,得用多层索引的规范访问方式。以下是具体实现方案:

方法1:直接计算并添加列

先提取活跃/非活跃的统计值,再按公式计算非活跃率(同时处理分母为0的情况避免报错):

# 提取活跃用户数(多层索引访问)
active = pivot_table[('count', 'active')]
# 提取非活跃用户数
inactive = pivot_table[('count', 'inactive')]

# 计算非活跃率,用replace(0,1)避免分母为0的报错
pivot_table[('count', 'inactive_rate')] = inactive / (active + inactive).replace(0, 1)

# 可选:扁平化列索引,让表格更易读
pivot_table.columns = pivot_table.columns.droplevel(0)

方法2:用assign方法一次性添加列

pivot_table = pivot_table.assign(
    inactive_rate=lambda df: df[('count', 'inactive')] / (df[('count', 'active')] + df[('count', 'inactive')]).replace(0, 1)
)

# 可选:重命名列名
pivot_table.columns = ['active', 'inactive', 'inactive_rate']

处理后结果示例

countryOfOrigin  active  inactive  inactive_rate
AT                1         0          0.0
BE                1385      338        0.196
CZ                2         0          0.0
DE                61        6          0.089
DK                1         0          0.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:12:31