如何在 python 数据框中查找列产品列

How to find the column product column in python dataframe

我有这样的数据框:

  DP 1    DP 2    DP 3    DP 4    DP 5    DP 6    DP 7    DP 8    DP 9   DP 10
 2.720   1.748   1.462   1.228   1.152   1.055   1.063   1.080   1.001  
 4.361   1.641   1.430   1.117   1.181   1.018   1.052   1.096      
 3.345   1.840   1.505   1.262   1.115   1.095   1.053          
 2.663   1.748   1.352   1.256   1.051   1.119              
 3.494   1.907   1.506   1.108   1.091                  
 3.104   1.559   1.458   1.092                      
 2.978   1.484   1.374                          
 3.066   1.695                              
 2.876                                                          
 1.179   1.699   1.439   1.179   1.116   1.073   1.055   1.089   1.001   1.000 

我必须找到这个 :

 4.680   3.971   2.337   1.624   1.377   1.234   1.150   1.090   1.001   1.000 

根据公式: 我必须找到最后一行第一个元素和其余元素的乘积,即:乘积(1.179 到 1.000)=4.680 然后下一个产品(1.699 到 1.000)=3.971 等等...

PRODUCT(first:last)

PRODUCT(second:last)

PRODUCT(third:last)

等等...

假设您的数据框已经有最后一行,这样 df.iloc[[-1]] 是:

 DP 1   DP 2   DP 3   DP 4   DP 5   DP 6   DP 7   DP 8   DP 9  DP 10
1.179  1.699  1.439  1.179  1.116  1.073  1.055  1.089  1.001    1.0

反转数列,取cumulative product:

df.iloc[-1][::-1].cumprod()
# output
DP 10    1.000000
DP 9     1.001000
DP 8     1.090089
DP 7     1.150044
DP 6     1.233997
DP 5     1.377141
DP 4     1.623649
DP 3     2.336431
DP 2     3.969596
DP 1     4.680154

要按原来的顺序取回,反转结果:

df.iloc[-1][::-1].cumprod()[::-1]
# output
DP 1     4.680154
DP 2     3.969596
DP 3     2.336431
DP 4     1.623649
DP 5     1.377141
DP 6     1.233997
DP 7     1.150044
DP 8     1.090089
DP 9     1.001000
DP 10    1.000000

(这些数字看起来略有不同,因为您在问题中对其进行了四舍五入。)