将Excel公式转换为python

我有一个这个公式的电子表格。 我能够理解条件检查部分,($ R7 / $ O7)的计算和条件不满足时的默认值。 (1 +($ U7:Z7))) – 1?

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

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

我想把这个公式转换成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是列名。 请注意,当df['T'] >= df['AA']为假时,此公式返回NaN