Словарь
Если вам нужен фрейм данных для каждого цикла, вы можете использовать словарь. С этим решением вам также не нужно хранить свой коэффициент в имени столбца, так как вес может быть вашим ключом. Вот один способ через словарь:
weights = [0.5,0.6,0.7,0.8,0.9,1.0]
col_name = '-'.join(df_media.columns)
dfs = {w: (df_media.sum(1) * w).to_frame(col_name) for w in weights}
print(dfs[0.5])
TV-BB-TP
0 4.5
1 10.0
2 5.5
Один кадр данных
Гораздо эффективнее сохранить ваш результат в отдельном кадре данных. Это устраняет необходимость в цикле уровня Python.
res = pd.DataFrame(df.sum(1).values[:, None] * np.array(weights),
columns=weights)
print(res)
0.5 0.6 0.7 0.8 0.9 1.0
0 4.5 5.4 6.3 7.2 8.1 9.0
1 10.0 12.0 14.0 16.0 18.0 20.0
2 5.5 6.6 7.7 8.8 9.9 11.0
Затем, например, получить доступ к первому весу как серии через res[0.5]
.