将Excel公式转换为python

普拉尚马诺哈尔

我有一个带有这个公式的电子表格。我能够理解条件检查部分,($R7/$O7) 的计算和条件不满足时的默认值。PRODUCT(1+($U7:Z7)))-1 里面到底发生了什么?

{=IF($T7>=AA$5,($R7/$O7)/(PRODUCT(1+($U7:Z7)))-1,"")}

另外,为什么我们有 {}?如果我在某个单元格中手动键入公式,则它不起作用。

我正在尝试将此公式转换为 python。这是我的代码:

df.loc[(df['T'] >= df['AA']), 'x'] = (df['R']/df['O'])/PRODUCT()-1

我的问题是如何计算此计算的 PRODUCT 部分?

卡尔·安卡

如果您只想知道如何计算数组的乘积,其中每个值加 1,结果减 1,可以使用 numpy 轻松完成:

import numpy as np

arr = np.array([1,2,3,4,5])
product = np.prod(arr+1) - 1
print product

Numpy 计算是按数组完成的,所以给每个值加 1 很简单 array+1

根据您在评论中的更新,这是如何完成的:

df.loc[(df['T'] >= df['AA']), 'x'] = (df['R']/df['O']) / ((df[['a', 'b']]+1).product(axis=1) - 1)

列名在哪里ab哪里请注意,此公式NaNdf['T'] >= df['AA']为 false返回

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章