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

Pandas如何将每行数据与对应权重相乘求和生成新列

实现方案

假设你的数据已存储为pandas DataFrame对象,命名为df,权重已存储为numpy数组对象,命名为weights,可按以下方式实现:

  • 首先确认权重的顺序和DataFrame中5个数值列从左到右的顺序一一对应
  • 如果Date字段已设为DataFrame的索引,直接执行以下代码即可生成新列:
df['weighted_sum'] = df.dot(weights)
  • 如果Date是普通列,需要先排除日期列再计算:
# 取除第一列Date外的所有数值列计算
num_cols = df.columns[1:]
df['weighted_sum'] = df[num_cols].dot(weights)

补充说明

  • 原始数据中全为NaN的行(如2010-01-04)计算结果会默认返回NaN,如果你需要把空值当做0计算,可以调整代码为:
# 以Date是索引的情况为例
df['weighted_sum'] = df.fillna(0).dot(weights)
  • 你给出的2010-01-05行示例,用上述方法计算的结果和手动加权求和的结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:09:01