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

如何基于另一DataFrame的系数对DataFrame应用指定数学方程?

问题:基于系数表计算输入DataFrame的目标值

现有两个DataFrame:

input_df(各水果的数值):

Apples    Pears   Peaches   Grapes
12        23       0         4
10        0        0         4
12        16       12        5
6         0        0         11

coefficients_df(各水果对应的计算系数):

Fruit       n    w1      w2
Apples      2    0.4     40
Pears       1    0.1     43
Peaches     1    0.6     51
Grapes      2    0.5     11

需要对input_df的每个元素应用公式:
y = w2*(1-exp(-w1*input_df^n))
其中n、w1、w2取自coefficients_df中对应水果的系数。

原尝试代码存在多处问题,以下是修正后的实现方案:

原代码问题分析

  1. pivot与merge用法错误:coefficients_df.pivot('Fruit')缺少必要参数,且merge无法将输入表的列名与系数表的行关联
  2. 变量未定义:lambda中的w2、w1、n未绑定到系数表的对应值
  3. 运算符错误:Python中数学幂运算用**,^是位异或操作,不符合需求
  4. 函数未导入:exp需使用numpy库的np.exp,不能直接调用

正确实现代码

import numpy as np
import pandas as pd

# 初始化输入DataFrame
input_df = pd.DataFrame({
    'Apples': [12, 10, 12, 6],
    'Pears': [23, 0, 16, 0],
    'Peaches': [0, 0, 12, 0],
    'Grapes': [4, 4, 5, 11]
})

# 初始化系数DataFrame
coefficients_df = pd.DataFrame({
    'Fruit': ['Apples', 'Pears', 'Peaches', 'Grapes'],
    'n': [2, 1, 1, 2],
    'w1': [0.4, 0.1, 0.6, 0.5],
    'w2': [40, 43, 51, 11]
})

# 将系数表设置为以Fruit为索引,方便按列名匹配系数
coeffs = coefficients_df.set_index('Fruit')

# 对输入表的每一列(对应一个水果)应用公式,利用pandas广播机制完成元素级计算
output_df = input_df.apply(
    lambda col: coeffs.loc[col.name, 'w2'] * (1 - np.exp(-coeffs.loc[col.name, 'w1'] * (col ** coeffs.loc[col.name, 'n'])))
)

print(output_df)

代码逻辑说明

  1. 将coefficients_df的索引设置为Fruit,这样可以通过输入表的列名(如Apples)直接定位到对应的系数组
  2. 使用input_df.apply遍历每一列,针对每个水果列,取出对应的n、w1、w2
  3. 利用numpy的元素级运算完成公式计算:
    • col ** coeffs.loc[col.name, 'n']:对列中每个元素做幂运算
    • np.exp(-w1 * 幂运算结果):计算指数项
    • 最终按公式组合得到每个元素的目标值

运行后输出结果如下:

Apples      Pears    Peaches     Grapes
0  40.000000  42.999985   0.000000  10.999999
1  40.000000   0.000000   0.000000  10.999999
2  40.000000  42.999717  50.999999  11.000000
3  39.999999   0.000000   0.000000  11.000000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 02:36:29