如何获得OHLC重采样的变体

时间:2019-08-22 21:35:37

标签: python pandas resampling

我有一个data_frame d1:

Date        Open     High      Low    Close
2019-07-15  1.25736  1.25782  1.25105  1.25162
2019-07-16  1.25161  1.25207  1.23963  1.24056
2019-07-17  1.24056  1.24564  1.23825  1.24362
2019-07-18  1.24330  1.25585  1.24282  1.25470
2019-07-19  1.25470  1.25562  1.24778  1.25015
2019-07-20  1.25070  1.25139  1.24559  1.24776
2019-07-21  1.24766  1.24816  1.24180  1.24391
2019-07-22  1.24394  1.25220  1.24278  1.24837
2019-07-23  1.24837  1.25175  1.24369  1.24543
2019-07-24  1.24540  1.24597  1.23765  1.23867
2019-07-25  1.23806  1.23840  1.22123  1.22175
2019-07-26  1.22184  1.22260  1.21200  1.21517
2019-07-27  1.21517  1.22488  1.21350  1.21532
2019-07-28  1.21533  1.21704  1.20798  1.21191
2019-07-29  1.21191  1.21696  1.20902  1.21496
2019-07-30  1.21511  1.21883  1.21018  1.21443
2019-07-31  1.21445  1.22091  1.21358  1.21696

我想创建更高周期的变量,比方说2D。 我正在使用resample()方法来完成此操作。

d2_1 = d1.resample('2d').apply(
    {
        'Open': 'first',
        'High': 'max',
        'Low': 'min',
        'Close': 'last'
    })

得到结果:

Date        Open     High      Low    Close
2019-07-15  1.25736  1.25782  1.23963  1.24056
2019-07-17  1.24056  1.25585  1.23825  1.25470
2019-07-19  1.25470  1.25562  1.24559  1.24776
2019-07-21  1.24766  1.25220  1.24180  1.24837
2019-07-23  1.24837  1.25175  1.23765  1.23867
2019-07-25  1.23806  1.23840  1.21200  1.21517
2019-07-27  1.21517  1.22488  1.20798  1.21191
2019-07-29  1.21191  1.21883  1.20902  1.21443
2019-07-31  1.21445  1.22091  1.21217  1.21431

但这只是2D1周期的一个变体,起始点是D1的第一行。

我不知道如何创建一个2D2周期,其中起点将是第二行:

2019-07-16  1.25161  1.25207  1.23963  1.24056

所以,我希望得到结果:

2019-07-16  1.25161  1.25207  1.23963  1.24056
2019-07-18  1.24330  1.25585  1.24282  1.25470
2019-07-20  1.25070  1.25139  1.24559  1.24776
2019-07-22  1.24394  1.25220  1.24278  1.24837
2019-07-24  1.24540  1.24597  1.23765  1.23867
2019-07-26  1.22184  1.22260  1.21200  1.21517
2019-07-28  1.21533  1.21704  1.20798  1.21191
2019-07-30  1.21511  1.21883  1.21018  1.21443

我该怎么做? 是否有一个参数可以设置重新采样的起点?

1 个答案:

答案 0 :(得分:0)

如何在重新采样之前对数据进行切片?

df2.iloc[1:].resample('2d').apply({'Open': 'first','High': 'max','Low':'min','Close': 'last'})