如何在pandas中计算分组内COUNT列对应各REGION的相对占比值
实现方法
通过pandas的分组转换功能即可快速完成需求,核心是用transform('sum')将分组求和结果映射回原数据集的每一行,保证行数匹配:
# 假设你的数据集存储为变量df # 方式1:分步骤计算,便于中间结果验证 df['group_total'] = df.groupby('SCORE')['COUNT'].transform('sum') df['region_ratio'] = df['COUNT'] / df['group_total'] # 如果需要直接输出带百分号、保留两位小数的格式化结果 df['region_pct'] = df['region_ratio'].apply(lambda x: f"{x*100:.2f}%") # 方式2:合并为一行写法 df['region_pct'] = (df['COUNT'] / df.groupby('SCORE')['COUNT'].transform('sum')).apply(lambda x: f"{x*100:.2f}%")
计算后SCORE为A的SOUTH行结果为76.10%,和你给出的示例逻辑完全匹配。
内容的提问来源于stack exchange,提问作者Marcos Dias
相关产品推荐
相关产品推荐

