我有两个具有几乎相同的行和索引的数据帧。df1:
Product AU-1 AU-2 AU-3
PROD1 5 7 8
PROD2 4 7 2
PROD3 2 60 7df2:
Product AU-1 AU-2 AU-3
PROD1 100 200 111
PROD2 757 7575 908
common 10 20 30
PROD3 656 657 6565我想得到的输出:
Product AU-1 AU-2 AU-3
PROD1 100.5 201.4 113.4
PROD2 757.4 7576.4 908.6
common 0 0 0
PROD3 656.2 669 6567.1每个单元格的公式:
each cell value of df2 + (corresponding "common" value * corresponding df1 value/100)PROD1和AU-1的例子
100 + (5*10/100) = 100.5我怎样才能以最有效的方式做到这一点?
发布于 2020-02-06 18:47:44
如果Product目前不是索引,那么就把它变成索引,这样在乘时就可以得到索引对齐,从那里开始,实现您的公式是非常简单的。
df1, df2 = (d.set_index('Product') for d in (df1, df2))
df2.add(df1.mul(df2.loc['common']).div(100)).fillna(0)
AU-1 AU-2 AU-3
Product
PROD1 100.5 201.4 113.4
PROD2 757.4 7576.4 908.6
PROD3 656.2 669.0 6567.1
common 0.0 0.0 0.0https://stackoverflow.com/questions/60101488
复制相似问题