Вы можете использовать следующий код:
import pandas as pd
#import numpy as np
df = df = pd.DataFrame({'A':[5,8,1],"B":[6,3,4],"C":[7,2,6],"Weight":[0.2,0.3,0.1]})
print(df)
Out[47]:
A B C Weight
0 5 6 7 0.2
1 8 3 2 0.3
2 1 4 6 0.1
Не нужно использовать apply
здесь:
temp = pd.DataFrame({'A':df['A']*df['Weight'],'B':df['B']*df['Weight'],'C':df['C']*df['Weight']})
print(temp)
A B C
0 1.0 1.2 1.4
1 2.4 0.9 0.6
2 0.1 0.4 0.6
Далее применить mean
функция
temp.mean(axis=1)
0 1.200000
1 1.300000
2 0.366667
dtype: float64
Я применил только 3 значения для каждого столбца.