python - 根据等式对两个数据帧中的行求和
问题描述
我有 2 个矩阵 df:距离 df:
1 2
1 20 50
2 5 10
时间df:
1 2
1 3 8
2 5 1
我想根据以下等式获得每行的总和值: e^ (-b1 i-b2 j) 对于 df 中的每一行(两个 df 具有相同的行数),而 b1 和 b2 是参数我稍后会优化。 例如,我想要结果:
id result
1 e^ (-b1*20 -b2*3) + e^ (-b1*50-b2* 8)
2 e^ (-b1*5-b2*5) + e ^ (-b1*10-b2*1)
我试过这段代码:
beta1=beta2=2
result=[]
for i in range(dist_df.shape[0]):
result.append(beta2*beta1*(np.sum([np.exp(-beta1*time_df.iloc[0,i]-beta2*dist_df.iloc[0,i])]))) # for herd 255
i=i+1
print(result)
total=sum(result)
print("SUM: " , total)
但我需要为每个 id 手动完成
解决方案
首先,您可以为功率数创建一个数据框:
df = -b1 * df1 -b2 * df2
然后你可以使用apply得到你的最终结果:
df = df.apply(lambda x: sum(math.exp(i) for i in x))
推荐阅读
- javascript - 尝试使用 jquery 和会话 cookie 创建一个记住我的功能,但应用程序在再次运行时甚至不会加载
- r - 如何使用“是”或“否”重命名逻辑值(TRUE 或 FALSE)并将 distinct() 应用于 FALSE 值
- javascript - 使 chrome 扩展能够查询浏览器页面的窗口
- macos - Spotlight 货币转换器未更新
- dafny - 断言和集合基数
- html - HTML5画布可动线
- swift - CGContext.draw(), CGContext.makeImage() 给我双倍的预期分辨率
- android-studio - 在 Android Studio 中配置导入顺序?
- javascript - 如何在client.js中访问登录表单的输入标签值(名称)
- javascript - 如何在 jsdoc 函数参数中指定 Date 对象?