Cómo multiplicar cada fila en el marco de datos de pandas por un valor diferente

Estoy tratando de multiplicar cada fila de un marco de datos de pandas por un valor diferente y me pregunto cuál es la mejor manera de hacer esto.

Por ejemplo, si tengo el siguiente marco de datos:

import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randn(2, 3))
df
     0          1           2
0   -1.283316   0.849488    1.936060
1   -2.078575   -0.871570   -0.970261

Quiero multiplicar cada elemento de cada fila por uno diferente en una lista o matriz

vals = [1, 100]

En este ejemplo, quiero que cada elemento de la primera fila se multiplique por 1 y que cada elemento de la segunda fila se multiplique por 100

Por lo tanto, el resultado debe ser:

     0          1           2
0   -1.283316   0.849488    1.936060
1   -207.8575   -87.1570    -97.0261

Yo he tratado:

df * vals
df.multiply(vals)
df.multiply(vals, axis=1)

Ninguno de los cuales funciona, aunque no los esperaba también, según mi comprensión de lo que debería hacer ese código. No puedo encontrar una manera concisa de hacer esto con los pandas, agradezco cualquier ayuda, gracias.