计算长面板日期集中的百分比变化

时间:2018-07-24 09:18:19

标签: python pandas percentage stock

我正在使用.pct_change()计算一组面板股票中的百分比变化。

                     close  high     low  open     volume  t  interval  \
company date                                                             
arnc    2017-05-19  1.0900  1.09  1.0700  1.07    51450.0  0         1   
        2017-05-18  1.0700  1.12  1.0500  1.09    59094.0  0         1   
        2017-05-17  1.1200  1.15  1.1000  1.14    82340.0  0         1   
        2017-05-16  1.1500  1.18  1.1400  1.17    49186.0  0         1   
        2017-05-15  1.1700  1.18  1.1200  1.18   140224.0  0         1   
        2017-05-12  1.3000  1.65  1.1300  1.13  2016764.0  0         0   
        2017-05-11  1.1100  1.14  1.1000  1.13    11186.0  0         0   
        2017-05-10  1.1200  1.14  1.1100  1.11     7937.0  0         0   
        2017-05-09  1.1199  1.15  1.1000  1.13     4925.0  0         0   
        2017-05-08  1.1217  1.14  1.1208  1.14    16878.0  0         0   
dan     2017-05-19  1.0900  1.09  1.0700  1.07    51450.0  0         1   
        2017-05-18  1.0700  1.12  1.0500  1.09    59094.0  0         1   
        2017-05-17  1.1200  1.15  1.1000  1.14    82340.0  0         1   


df['pct_change'] = df.open.pct_change()

但是,我发现熊猫没有删除第一个观察值,而是根据前一个公司的最后一个观察值来计算公司的第一个百分比变化。

如何避免这种情况,并让大熊猫放弃给每个公司的第一个对象?

1 个答案:

答案 0 :(得分:0)

似乎需要:

df['pct_change'] = df.groupby(level=0).open.transform(lambda x: x.pct_change())

print (df)
                     close  high     low  open     volume  t  interval  \
company date                                                             
arnc    2017-05-19  1.0900  1.09  1.0700  1.07    51450.0  0         1   
        2017-05-18  1.0700  1.12  1.0500  1.09    59094.0  0         1   
        2017-05-17  1.1200  1.15  1.1000  1.14    82340.0  0         1   
        2017-05-16  1.1500  1.18  1.1400  1.17    49186.0  0         1   
        2017-05-15  1.1700  1.18  1.1200  1.18   140224.0  0         1   
        2017-05-12  1.3000  1.65  1.1300  1.13  2016764.0  0         0   
        2017-05-11  1.1100  1.14  1.1000  1.13    11186.0  0         0   
        2017-05-10  1.1200  1.14  1.1100  1.11     7937.0  0         0   
        2017-05-09  1.1199  1.15  1.1000  1.13     4925.0  0         0   
        2017-05-08  1.1217  1.14  1.1208  1.14    16878.0  0         0   
dan     2017-05-19  1.0900  1.09  1.0700  1.07    51450.0  0         1   
        2017-05-18  1.0700  1.12  1.0500  1.09    59094.0  0         1   
        2017-05-17  1.1200  1.15  1.1000  1.14    82340.0  0         1   

                    pct_change  
company date                    
arnc    2017-05-19         NaN  
        2017-05-18    0.018692  
        2017-05-17    0.045872  
        2017-05-16    0.026316  
        2017-05-15    0.008547  
        2017-05-12   -0.042373  
        2017-05-11    0.000000  
        2017-05-10   -0.017699  
        2017-05-09    0.018018  
        2017-05-08    0.008850  
dan     2017-05-19         NaN  
        2017-05-18    0.018692  
        2017-05-17    0.045872