繁体   English   中英

根据另一列中的两行计算数据框列

[英]calculate dataframe column based on two rows in another column

我有一个数据框,其中包含一个包含价格的列。 创建列来计算两行之间的收益率(保留第一个或最后一个Null)的最佳方法是什么?

例如,数据框如下所示:

    Date        Price
2008-11-21    23.400000
2008-11-24    26.990000
2008-11-25    28.000000
2008-11-26    25.830000

尝试添加列,如下所示:

    Date        Price       Return
2008-11-21    23.400000     0.1534
2008-11-24    26.990000     0.0374
2008-11-25    28.000000    -0.0775
2008-11-26    25.830000      NaN

其中返回列的计算如下:

Return Row 0 = Price Row 1 / Price Row 0 - 1

我应该循环吗,还是有更好的方法?

您可以使用shift来移动行,然后使用div来将Series与已移动的自身分开:

In [44]:
df['Return'] = (df['Price'].shift(-1).div(df['Price']) - 1)
df

Out[44]:
         Date  Price    Return
0  2008-11-21  23.40  0.153419
1  2008-11-24  26.99  0.037421
2  2008-11-25  28.00 -0.077500
3  2008-11-26  25.83       NaN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM