n 天回溯平均每一天

数据挖掘 Python 熊猫 matplotlib
2022-03-13 02:46:31

我有一个如下数据集,我希望看到 3 天的高低平均值,从同一图中的每一天返回。

    index   closed  high    low     open
tarih                   
2018-05-18  1364    0.00000442  0.00000445  0.00000405  0.00000416
2018-05-19  1365    0.00000458  0.00000465  0.00000427  0.00000442
2018-05-20  1366    0.00000482  0.00000489  0.00000448  0.00000455
2018-05-21  1367    0.00000489  0.00000492  0.00000463  0.00000482
2018-05-22  1368    0.00000475  0.00000492  0.00000465  0.00000487
2018-05-23  1369    0.00000461  0.00000486  0.00000450  0.00000475
2018-05-24  1370    0.00000462  0.00000480  0.00000455  0.00000464

例如,对于 05-24,它将计算 21、22、23 天的高低平均值并将其指向 05-24。

1个回答

您可以为此使用pandas 滚动方法。

back = 3
cols = ['high','low']

# calculate rolling mean on the dataframe's columns of interest
df_back_average = df[cols].rolling(back).mean()

# rename columns before concatenating the result back
df_back_average.columns = str(back) + '_back_average_' + df_back_average.columns

pd.concat([df[cols],df_back_average], axis=1)


high        low         3_back_average_high     3_back_average_low
0.000442    0.000445    NaN                     NaN
0.004580    0.004650    NaN                     NaN
0.004820    0.004890    0.003281                0.003328
0.004890    0.004920    0.004763                0.004820
0.004750    0.004920    0.004820                0.004910
0.004610    0.004860    0.004750                0.004900
0.004620    0.004800    0.004660                0.004860