为熊猫中的多个证券返回流

时间:2017-03-15 16:33:58

标签: python pandas time-series

假设我有一个看起来像这样的表:

    Ticker Date       ClosingPrice
0    A     01-02-2010  11.4
1    A     01-03-2010  11.5
           ...
1000 AAPL  01-02-2010  634
1001 AAPL  01-02-2010  635

因此,换句话说,我们有一系列时间序列拼接在一起的每个股票代码符号。现在,我想生成一列每日回报。如果我只有一个符号,那么使用pandas pct_change()函数会非常容易,但是我如何按照上面的多个时间序列执行它(我可以执行一系列的groupbys,使每个都成为一个数据帧,执行返回计算,然后将它们与pd.concat()拼接在一起,但这似乎不是最佳的。

1 个答案:

答案 0 :(得分:1)

使用groupby

df.set_index(['Ticker', 'Date']).ClosingPrice.groupby(level=0).pct_change()

Ticker  Date      
A       01-02-2010         NaN
        01-03-2010    0.008772
AAPL    01-02-2010         NaN
        01-02-2010    0.001577
Name: ClosingPrice, dtype: float64