numpy函数内部的Pandas数据帧分组操作



我有一个数据框架,由数千个股票报价组成,按符号(tic(和日期排序。

Date    tic    prccd
0   1-1-20  AAPL    4.00
1   2-1-20  AAPL    4.10
2   3-1-20  AAPL    4.12
3   1-1-20  MSFT    6.00
4   2-1-20  MSFT    6.15
5   3-1-20  MSFT    6.10

stocks_data['log_return'] = np.log(1 + stocks_data.groupby('tic')['prccd'].pct_change())

我的目标是得到这些股票的对数日回报率。numpy函数是否确认groupby tic操作?

要计算每个tic组的每日日志回报,请使用:

stocks_data['log_return'] = df.groupby('tic').prccd.transform(lambda x: np.log(x) - np.log(x.shift(1)))

或等效公式:

stocks_data['log_return'] = df.groupby('tic').prccd.transform(lambda x: np.log(x / x.shift(1)))

结果:

Date   tic  prccd  log_return
0  1-1-20  AAPL   4.00         NaN
1  2-1-20  AAPL   4.10    0.024693
2  3-1-20  AAPL   4.12    0.004866
3  1-1-20  MSFT   6.00         NaN
4  2-1-20  MSFT   6.15    0.024693
5  3-1-20  MSFT   6.10   -0.008163

最新更新