我试图将pandas Dataframe 的每一行乘以不同的值,并想知道最好的方法是什么。
例如,如果我有以下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
我想将每一行的每个元素乘以列表或数组中的不同: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)
虽然我也没想到这些,但根据我对这些代码应该做什么的理解,这些都不起作用。
2条答案
按热度按时间jchrr9hc1#
方法是
mul
:fykwrbwg2#
最流行的方法是
mul
在axis=0
上,也就是说,要使*
工作,我们需要一个列数组,其中的行数与帧的行数匹配,所以下面的工作。