Pandas DataFrame将特定功能应用于每列

时间:2015-12-22 16:58:49

标签: python pandas

我有以下数据框:

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

1 个答案:

答案 0 :(得分:3)

赢得了同样的事情吗?

df = df * MultFactor