2017-08-05 47 views
-1

我用下面的命令,如何让所有列动态地AAL,AAN PCT零钱以下大熊猫DF ... 100多个熊猫:如何动态计算所有列的PCT变更?

price['AABA_PCT_CHG'] = price.AABA.pct_change() 

     AABA  AAL  AAN AABA_PCT_CHG 
0 16.120001 9.635592 18.836105   NaN 
1 16.400000 8.363149 23.105881  0.017370 
2 16.680000 8.460282 24.892321  0.017073 
3 17.700001 8.829385 28.275263  0.061151 
4 16.549999 8.839100 27.705627  -0.064972 
5 15.040000 8.654548 27.754738  -0.091239 

回答

1

应用在数据帧像

In [424]: price.pct_change().add_suffix('_PCT_CHG') 
Out[424]: 
    AABA_PCT_CHG AAL_PCT_CHG AAN_PCT_CHG 
0   NaN   NaN   NaN 
1  0.017370 -0.132057  0.226680 
2  0.017073  0.011614  0.077315 
3  0.061151  0.043628  0.135903 
4  -0.064972  0.001100 -0.020146 
5  -0.091239 -0.020879  0.001773 

In [425]: price.join(price.pct_change().add_suffix('_PCT_CHG')) 
Out[425]: 
     AABA  AAL  AAN AABA_PCT_CHG AAL_PCT_CHG AAN_PCT_CHG 
0 16.120001 9.635592 18.836105   NaN   NaN   NaN 
1 16.400000 8.363149 23.105881  0.017370 -0.132057  0.226680 
2 16.680000 8.460282 24.892321  0.017073  0.011614  0.077315 
3 17.700001 8.829385 28.275263  0.061151  0.043628  0.135903 
4 16.549999 8.839100 27.705627  -0.064972  0.001100 -0.020146 
5 15.040000 8.654548 27.754738  -0.091239 -0.020879  0.001773 
+0

这解决了我的pct_change的目的,但是如何解决所有列的以下问题? 价格['AABA_LOG_RETURN'] = np.log(price.AABA) - np.log(price.AABA.shift(1)) – Shakti

+0

@Shakti请给每个问题一个问题。如果这解决了问题中的问题,请将其标记为已接受并打开一个新问题。 –

+0

@cᴏʟᴅsᴘᴇᴇᴅ - 谢谢 - 我从另一个帖子中找到它 - price.apply(np.log).diff()。add_suffix('_ LOG_PCT_CHG') – Shakti