小能豆

将 5 分钟时间段合并为每小时时间段

py

有没有办法做到以下几点:将 5 分钟数据合并成每小时数据,并将开盘价、最高价、最低价、最后价合并成每小时数据

09:00 - 10:00 时段的示例:

open = 3896(09:00开盘价)

最高温度 = 09:00 至 09:55 期间最高温度

最低 = 09:00 至 09:55 之间的最低值

最后价格 = 3902(最后价格为 09:55)

Date         Time       Open     High    Low     Last
12/02/2021   09:00:00   3896    3899.25 3895.75 3898.75
12/02/2021   09:05:00   3898.5  3899    3898    3898.25
12/02/2021   09:10:00   3898    3899    3897.5  3898
12/02/2021   09:15:00   3898    3899.25 3897.5  3898.5
12/02/2021   09:20:00   3898.25 3900    3898.25 3899.25
12/02/2021   09:25:00   3899.25 3900.25 3899    3900
12/02/2021   09:30:00   3900    3901.5  3899    3899.75
12/02/2021   09:35:00   3899.75 3900.5  3899.5  3900
12/02/2021   09:40:00   3900    3901.5  3899.75 3901.5
12/02/2021   09:45:00   3901.25 3902.5  3901.25 3902
12/02/2021   09:50:00   3902    3902    3899.75 3901.5
12/02/2021   09:55:00   3901.25 3902.25 3901    3902
12/02/2021   10:00:00   3902    3903    3901.75 3903
12/02/2021   10:05:00   3903    3903.25 3902.25 3902.75
12/02/2021   10:10:00   3902.75 3902.75 3901.5  3901.5
12/02/2021   10:15:00   3901.5  3902.5  3901.25 3902.5
12/02/2021   10:20:00   3902.5  3903.75 3902.25 3903.75
12/02/2021   10:25:00   3903.75 3903.75 3902.25 3903.25
12/02/2021   10:30:00   3903.25 3903.25 3902.25 3903.25
12/02/2021   10:35:00   3903.25 3903.25 3902.25 3902.75
12/02/2021   10:40:00   3902.5  3903.5  3902    3903.25
12/02/2021   10:45:00   3903.25 3904.25 3902.75 3902.75
12/02/2021   10:50:00   3902.75 3903.25 3902    3902.75
12/02/2021   10:55:00   3902.75 3904.25 3902.75 3903.25
12/02/2021   11:00:00   3903.5  3904    3903    3904

阅读 6

收藏
2025-01-12

共1个答案

小能豆

创建DatetimeIndex然后使用Resampler.agg

df.index = pd.to_datetime(df['Date'] + ' ' + df['Time'])

df = df.resample('H').agg({'Open':'first', 'High':'max', 'Low':'min', 'Last':'last'})
print (df.head())
                       Open     High      Low     Last
2021-12-02 09:00:00  3896.0  3902.50  3895.75  3902.00
2021-12-02 10:00:00  3902.0  3904.25  3901.25  3903.25
2021-12-02 11:00:00  3903.5  3904.00  3903.00  3904.00
2025-01-12