You need to enable JavaScript to run this app. 如何对DataFrame的Weight列做归一化,使该列所有数值总和为1
优惠活动
大模型
产品
解决方案
定价
更多

如何对DataFrame的Weight列做归一化,使该列所有数值总和为1

实现Weight列总和为1的归一化方法

你要的是总和归一化(也叫比例缩放),核心逻辑是将列内每个元素除以该列的总和即可,以下是Python pandas生态下的常用实现:

  • 首先构造你的示例DataFrame:
import pandas as pd

df = pd.DataFrame({
    "Time": [1,2,3,4],
    "Weight": [4,2,1,7]
})
  • 归一化操作(可以存为新列或者覆盖原列):
# 计算Weight列总和
total = df["Weight"].sum()
# 生成归一化后的新列
df["normalized_Weight"] = df["Weight"] / total
# 如果要覆盖原Weight列,改为 df["Weight"] = df["Weight"] / total 即可
  • 结果验证:你的示例数据Weight列总和为14,归一化后四个值分别为4/14≈0.2857、2/14≈0.1429、1/14≈0.0714、7/14=0.5,求和后恰好为1。
  • 注意事项:
    • 若Weight列存在负数,归一化后总和仍为1但会出现负值,用于概率场景前请先做非负处理
    • 若Weight列总和为0会触发除以0报错,处理前可增加总和判断逻辑,按业务需求做异常处理就行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 13:45:03