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

如何在Pandas中实现DataFrame行元素与列元素逐乘后求和?

解决方法

首先提取df1的第一行数据,用df1.iloc[0]即可得到包含value_1到value_4的Series。

接着提取df2中coeff_1列的前4个元素(对应你示例里的计算需求),可以用df2['coeff_1'].iloc[:4]。

下面是两种简洁的实现方式:

方式一:逐元素相乘后求和

# 提取目标数据
row_df1 = df1.iloc[0]
coeffs = df2['coeff_1'].iloc[:4]

# 计算结果
total = (row_df1 * coeffs).sum()

运行后total的值为 1*1 + 2.5*0 + 3*1 + 5.5*1 = 9.5。

方式二:使用点积运算

Series本质是一维数组,直接用点积@可以一步完成逐元素相乘求和:

total = df1.iloc[0] @ df2['coeff_1'].iloc[:4]

这个结果和方式一完全相同,代码更简洁。

注意点

  • 必须保证两个序列的长度一致,否则会触发长度不匹配的错误。如果你的实际需求有变化,要对应调整提取的元素数量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:20:52