如何计算不同列的前一行和新行之间的差



我有一个df如下

index open close
10  12
15  16
20   19

要查找同一列前一行之间的差异,可以使用

df['diff] = df['close'].diff()

但是我想找到当前打开和先前关闭之间的差异。我该怎么做呢?

index open close diff_new_open_prev_close
10  12.    Nan
15  16.    3
20   19.   4
diff = current rows open - prev rows close

您可以使用pandas.DataFrame.shift

df['prev_close'] = df['close'].shift()
df['diff_new_open_prev_close'] =  df['open'] - df['prev_close']
print(df)
# Or 
df['diff_new_open_prev_close'] = df['open'].subtract(df['close'].shift())

输出:

open  close  prev_close  diff_new_open_prev_close
0    10     12         NaN                       NaN
1    15     16        12.0                       3.0
2    20     19        16.0                       4.0

最新更新