我有以下数据框:
>>> import numpy as np
>>> import pandas as pd
>>> df=pd.DataFrame()
>>> df['Var1']=np.random.randint(0,100,10)
>>> df['Var2']=np.random.randint(0,10,10)
>>> df
Var1 Var2
0 46 2
1 10 3
2 30 6
3 49 4
4 62 3
5 64 8
6 26 0
7 41 2
8 3 2
9 22 3
>>>
我有以下系列,其中包含每列将乘以的乘法因子:
>>> MultFactors=pd.Series(index=['Var1','Var2'],data=np.random.randn(2))
>>> MultFactors
Var1 0.833691
Var2 -1.408577
dtype: float64
>>>
返回与原始数据帧形状相同的数据帧的最佳方法是什么,并包含每个值乘以适当的乘法因子。我可以用for循环来做这个,但我想知道更有效的方法是什么。
>>> for MultFactor in MultFactors.index:
... df[MultFactor]=df[MultFactor]*MultFactors[MultFactor]
...
>>> df
Var1 Var2
0 38.349773 -2.817155
1 8.336907 -4.225732
2 25.010722 -8.451464
3 40.850845 -5.634310
4 51.688825 -4.225732
5 53.356206 -11.268619
6 21.675959 -0.000000
7 34.181319 -2.817155
8 2.501072 -2.817155
9 18.341196 -4.225732
>>>
答案 0 :(得分:3)
赢得了同样的事情吗?
df = df * MultFactor