我想通过特定列在数据框中划分行。
也就是说,我有一个名为“ ticker”的列,其属性为“ date”和“ price”。
我想将date[i+2]
除以date[i]
,其中i
和i+2
的意思是该报价的价格是DAY和DAY +2。该日期还应采用正确的日期时间格式,以进行熊猫操作。
数据如下:
date | ticker | price |
2002-01-30 A 20
2002-01-31 A 21
2002-02-01 A 21.4
2002-02-02 A 21.3
.
.
这意味着我想根据股票代码以及具体针对每个股票代码的DAY和DAY + 2选择价格,以计算比率date[i+2]/date[i]
。
我已经考虑过使用iloc
,但是我不确定如何选择特定的股票行情只是为了进行数学运算。
答案 0 :(得分:1)
使用groupby
:
df.groupby('ticker')['price'].transform(lambda x: x / x.shift(2))
0 NaN
1 NaN
2 1.070000
3 1.014286
Name: price, dtype: float64