【发布时间】:2018-01-03 09:02:17
【问题描述】:
我必须使用 pandas 数据框格式的列,并希望 C D 列中的输出如下所示
A B C D
1 2 1*2 1*2
3 4 (1+3)*4 (1*2)+(3*4)
5 6 (1+3+5)*6 (1*2)+(3*4)+(5*6)
7 8 (1+3+5+7)*8 (1*2)+(3*4)+(5*6)+(7*8)
9 10 .... .....
我正在尝试用 python 方式编写 excel 公式,有人可以为此抛出代码
a) python code for top to bottom calculation
Excel Formulas for the final outcome:
C1=IFERROR($B2*SUM(A2:$A$2)-SUMPRODUCT($B2:B$2,$A2:A$2),0)
C2=IFERROR($B3*SUM(A$2:$A3)-SUMPRODUCT($B$2:B3,$A$2:A3),0)
.....
....
C14=IFERROR($B14*SUM(A$2:$A14)-SUMPRODUCT($B$2:B14,$A$2:A14),0)
b) python code for bottom to top calculation from bottom
e1==IFERROR(SUMPRODUCT($B2:B$14,$C2:C$14)-$B2*SUM($C2:C$14),0)
E2=IFERROR(SUMPRODUCT($B3:B$14,$C3:C$14)-$B3*SUM($C3:C$14),0)
e4=IFERROR(SUMPRODUCT($B4:B$14,$C4:C$14)-$B4*SUM($C4:C$14),0)
.....
.....
.....
e14=IFERROR(SUMPRODUCT($B14:B$14,$C14:C$14)-$B14*SUM($C14:C$14),0)
【问题讨论】:
-
为什么在这里使用
IFERROR(..)? -
嗨,威廉,如果结果为负,IFERROR 用于产生零值
标签: python excel pandas numpy-einsum