首页 > 解决方案 > 使用前缀列名将每列乘以它们的相对因子

问题描述

我有一个矩阵

id |v1_m1 v2_m1 v3_m1 f_m1 v1_m2 v2_m2 v3_m2 f_m2| 
1  |  0     .5    .5    4   0.1   0.3    0.6   4 |
2  |  0.3   .3    .4    8   0.2   0.4    0.4   7 |

我想要的是将 m1 中的每个 v 乘以 f_m1 列,并将所有带有后缀“_m2”的 v 列乘以 ghe f_m2 列。

我期望的输出是这样的:

id |v1_m1 v2_m1 v3_m1 v1_m2 v2_m2 v3_m2 | 
1  |  0    2      2    0.4   1.2   2.4  |
2  | 2.4  2.4    3.2   1.4   2.8   2.8  |

标签: pythonpython-3.xpandas

解决方案


for m in range (1,maxm):
    for i in range (1,maxv):
        df["v{}_m{}".format(i,m)] = df["v{}_m{}".format(i,m)]*df["f_m{}".format(m)]
for m in range (1,maxm):
    df.drop(columns=["f_m{}".format(m)])

推荐阅读