在Pandas中按日期+ n划分特定列的行

时间:2018-07-31 16:40:17

标签: python python-3.x pandas dataframe math

我想通过特定列在数据框中划分行。

也就是说,我有一个名为“ ticker”的列,其属性为“ date”和“ price”。 我想将date[i+2]除以date[i],其中ii+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,但是我不确定如何选择特定的股票行情只是为了进行数学运算。

1 个答案:

答案 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