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

标签 python pandas dataframe

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

例如,数据框如下所示:

    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

其中返回列的计算如下:

返回行 0 = 价格行 1/价格行 0 - 1

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

最佳答案

您可以使用shift移动行然后 div将系列与其自身分开:

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

关于python - 根据另一列中的两行计算数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40803448/

相关文章:

python - 在嵌套 while 循环中使用 matplotlib 绘制多个图

jquery - Django LoginRequired mixin 总是拒绝访问

python - 有没有办法在同一个X轴上查看不同时间尺度的数据?

python - 我一直收到缩进错误,我不应该这样

python - 将系列字典从数据帧列转换为同一数据帧中的单独列

python-3.x - python / Pandas : why the empty dataframe when using isin?

python - 我如何转置这些数据以获得类似的东西

python - Pandas read_csv EOF 位于从行开始的字符串内

python - 从列表中仅替换数据框中的几个标题

R:将数据帧分为 3 部分