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

Estoy tratando de multiplicar cada fila de un dataframe de pandas por un valor diferente y me pregunto cuál es la mejor manera de hacerlo.

Por ejemplo, si tengo el siguiente dataframe:

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 un 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

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 tampoco los esperaba, en base a mi comprensión de lo que ese código debería hacer. No puedo encontrar una manera concisa de hacer esto con pandas, cualquier ayuda es apreciada, gracias.

El método es mul :

 df.mul([1, 100], axis=0) Out[17]: 0 1 2 0 -1.198766 -1.340028 1.990843 1 113.890468 -68.177755 -9.060228