我有一个每日的数据框,我正在尝试使用resample
将其重采样以获得每月的Open High Low Close
。
daily_df
Open High Low Last Close
Date
2010-01-04 55.15 57.55 54.55 57.50 57.30
2010-01-05 59.70 59.70 57.45 57.90 58.00
2010-01-06 60.30 60.30 57.10 57.55 57.50
2010-01-07 60.25 60.25 57.35 58.85 58.90
2010-01-08 59.40 59.95 56.90 57.30 57.65
2010-01-11 57.30 57.95 56.00 56.25 56.25
2010-01-12 56.25 56.80 53.80 54.25 54.10
2010-01-13 54.00 55.00 52.15 54.90 54.85
2010-01-14 55.45 55.70 54.15 54.30 54.35
2010-01-15 54.60 55.30 54.00 54.30 54.30
2010-01-18 53.90 55.20 53.85 54.35 54.40
2010-01-19 54.60 55.20 53.55 53.65 53.75
2010-01-20 54.40 54.40 53.45 53.60 53.70
2010-01-21 53.85 53.85 51.95 52.10 52.25
2010-01-22 51.80 52.85 50.30 51.85 52.00
2010-01-25 52.50 52.50 50.50 50.70 50.85
2010-01-27 51.25 51.25 47.80 47.90 48.20
2010-01-28 48.55 50.50 47.10 47.45 47.35
2010-01-29 47.45 52.15 45.60 51.80 51.70
2010-02-01 51.80 52.40 50.50 51.50 51.45
2010-02-02 53.25 54.10 51.40 51.80 51.80
2010-02-03 51.60 52.90 51.50 51.85 51.95
我已经尝试过:
df2 = df_daily.resample('M',convention='end').asfreq()
这将给我一个仅包含收盘价的数据帧,即如果日期恰好为月底,则为开盘价高价低价收盘价的第30个值,否则为NaN
。
df2=df_daily.resample('M').mean()
这将产生一个数值,我认为它是某个月份Open High Low Close值的平均/平均值。
我希望能够从价格可用的那个月的第一天得到该月份的Open值,高值为该月份的最高值,低值为该月份的最低值,Close为实际收盘价。
我相信我可以使用pandas中的min max以不同的方式完成这项任务,但我只是想知道是否可以使用重新采样来完成这项任务。
期望的 df:
Open High Low Close
Date
2010-01-29 55.15 60.3 45.6 51.7
谢谢