我们如何定义特定列以将其与特定列相乘?

How we can define specific columns to multiply it with specifc columns?

我有这样的df

Web     R_Val     B_Cost     R_Total     B_Total
A       20        2           20         1
B       30        3           10         2
C       40        1           30         1

我想将以 R_ 开头的列和以 B_ 开头的列相乘,在实际数据中还有更多。这只是虚拟数据,实现这一目标的最佳解决方案是什么?

 Web     R_Val     B_Cost     R_Total     B_Total     R_New       B_New
    A       20        2           20         1
    B       30        3           10         2
    C       40        1           30         1

查看我刚刚针对您的其他问题发布的答案:

dfr = pd.DataFrame({
    'Brand' : ['A', 'B', 'C', 'D', 'E', 'F'], 
    'price'  : [10, 20, 30, 40, 50, 10],
    'S_Value'  : [2,4,2,1,1,1],
    'S_Factor'  : [2,1,1,2,1,1]
})

pre_fixes = ['S_']
for prefix in pre_fixes:
    coltocal = [col for col in dfr.columns if col.startswith(prefix)]
    for col in coltocal:
        dfr.loc[:,col+'_new'] = dfr.price*dfr[col]
dfr