Вы можете выбрать все столбцы без первого с помощью DataFrame.iloc
и умножить на столбец с помощью DataFrame.mul
:
df.iloc[:, 1:] = df.iloc[:, 1:].mul(df['qtd'], axis=0)
print (df)
qtd a b c d e z
0 90 90 0 0 0 0 0
1 10 0 0 0 0 0 10
2 40 0 40 0 0 0 0
3 80 0 0 80 0 0 0
4 90 0 90 0 0 0 0
Если столбец не всегда первый, возможно получить имена столбцов по Index.difference
и выбрать по подмножеству:
cols = df.columns.difference(['qtd'])
df[cols] = df[cols].mul(df['qtd'], axis=0)
Если первый столбец является индексом:
df = df.mul(df.index, axis=0)
print (df)
a b c d e z
qtd
90 90 0 0 0 0 0
10 0 0 0 0 0 10
40 0 40 0 0 0 0
80 0 0 80 0 0 0
90 0 90 0 0 0 0