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

如何将DataFrame中各列值除以对应行的指定总计列?

实现方法

步骤1:构造示例DataFrame(已有数据可跳过)

先导入pandas并创建匹配需求的示例数据:

import pandas as pd

data = {
    'Cluster': [1, 2, 3, 4, 5],
    1: [3, 2, 1, 4, 3],
    2: [2, 2, 1, 1, 2],
    3: [1, 2, 1, 1, 3],
    4: [3, 3, 3, 3, 3],
    5: [1, 1, 1, 1, 1],
    6: [2, 2, 2, 2, 2],
    7: [1, 1, 1, 1, 1],
    8: [1, 1, 1, 1, 1],
    9: [2, 2, 2, 2, 2],
    'Total': [16, 16, 13, 16, 18]
}
df = pd.DataFrame(data).set_index('Cluster')

步骤2:转换为分数格式字符串

筛选出除Total外的所有列,逐行将每个元素转换为值/对应行Total值的字符串格式:

# 排除Total列,获取需要处理的目标列
target_cols = df.columns.drop('Total')

# 逐行生成分数字符串并替换原列值
df[target_cols] = df.apply(
    lambda row: [f"{val}/{row['Total']}" for val in row[target_cols]],
    axis=1,
    result_type='expand'
)

最终效果

执行代码后,DataFrame会呈现你需要的格式:

1      2      3      4      5      6      7      8      9  Total
Cluster                                                                  
1       3/16  2/16  1/16  3/16  1/16  2/16  1/16  1/16  2/16     16
2       2/16  2/16  2/16  3/16  1/16  2/16  1/16  1/16  2/16     16
3       1/13  1/13  1/13  3/13  1/13  2/13  1/13  1/13  2/13     13
4       4/16  1/16  1/16  3/16  1/16  2/16  1/16  1/16  2/16     16
5       3/18  2/18  3/18  3/18  1/18  2/18  1/18  1/18  2/18     18

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:01:14