如何将pandas数据帧中的每一行乘以不同的值

时间:2016-06-29 16:58:57

标签: python pandas

我试图将pandas数据帧的每一行乘以不同的值,并想知道最好的方法是什么。

例如,如果我有以下数据框:

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

我想将每行中的每个元素乘以列表或数组中的不同

vals = [1, 100]

在这个例子中,我希望第一行中的每个项目乘以1,第二行中的每个项目乘以100

结果应该是:

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

我试过了:

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

根据我对该代码应该做什么的理解,这些都没有用,虽然我也没想到它们。我无法通过大熊猫找到一个简洁的方法,感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:15)

该方法为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