如何将最后一个值与熊猫数据框中的前 6 个值进行比较?

时间:2020-12-21 14:07:40

标签: python pandas dataframe finance technical-indicator

有没有办法找出最后一个值是否在前六天值的较低 50% 范围内?我想添加另一列显示是或否。我尝试对前六个进行排序以获得中间值,但无法将其与最后一个进行比较和/或使其迭代以填充新列。我的数据如下所示:

Date            Open        High         Low       Close    Adj Close   Volume                  
2020-12-14  3675.270020 3697.610107 3645.840088 3647.489990 3647.489990 4594920000
2020-12-15  3666.409912 3695.290039 3659.620117 3694.620117 3694.620117 4360280000
2020-12-16  3696.250000 3711.270020 3688.570068 3701.169922 3701.169922 4056950000
2020-12-17  3713.649902 3725.120117 3710.870117 3722.479980 3722.479980 4184930000
2020-12-18  3722.389893 3726.699951 3685.840088 3709.409912 3709.409912 7068340000

我花了 5-6 个小时在谷歌上搜索并尝试无济于事,非常感谢任何形式的指导

1 个答案:

答案 0 :(得分:0)

将您的问题理解为要求前一天的收盘价与前六天的平均值的比率,我创建了以下代码。按降序对检索到的股票的收盘价进行排序。在新列中,使用滚动函数计算六天平均值并将其相加。然后移动数据以将新列与要比较的收盘价对齐。然后我们添加了比率计算。

import yfinance as yf
data = yf.download("AAPL", start="2020-11-17", end="2020-12-18")['Adj Close'].to_frame()
data.sort_index(ascending=False, inplace=True)
data['pre_6'] = data.rolling(6).mean()
data['pre_6'] = data['pre_6'].shift(-5)
data['check'] =  data['Adj Close'] /data['pre_6']
data

          Adj Close     pre_6   check
Date            
2020-12-17  128.699997  125.303332  1.027108
2020-12-16  127.809998  124.149999  1.029480
2020-12-15  127.879997  123.578332  1.034809
2020-12-14  121.779999  122.889999  0.990968
2020-12-11  122.410004  122.968333  0.995460
2020-12-10  123.239998  123.056666  1.001490
2020-12-09  121.779999  123.030000  0.989840
2020-12-08  124.379997  123.186667  1.009687
2020-12-07  123.750000  122.298335  1.011870
2020-12-04  122.250000  121.105001  1.009455
2020-12-03  122.940002  120.068334  1.023917
2020-12-02  123.080002  118.773333  1.036260
2020-12-01  122.720001  117.234999  1.046786
2020-11-30  119.050003  116.338332  1.023308
2020-11-27  116.589996  116.269998  1.002752
2020-11-25  116.029999  116.509998  0.995880
2020-11-24  115.169998  117.069998  0.983770
2020-11-23  113.849998  117.924999  0.965444
2020-11-20  117.339996  NaN     NaN
2020-11-19  118.639999  NaN     NaN
2020-11-18  118.029999  NaN     NaN
2020-11-17  119.389999  NaN     NaN
2020-11-16  120.300003  NaN     NaN
相关问题