【发布时间】:2019-02-10 13:02:11
【问题描述】:
我有一个每日数据框,我试图通过 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()
这导致我假设的值是特定月份的开盘高低收盘值的平均值/平均值。
我希望从价格可用的月份的第一天开始获得该月的开盘价,高是该月的最高值,低是该月的最低值,接近实际收盘价。
我相信我可以使用 min max 以不同的方式在 pandas 中执行此操作,但只是想知道是否可以使用重采样来执行此操作。
预期的 df
Open High Low Close
Date
2010-01-29 55.15 60.3 45.6 51.7
谢谢
【问题讨论】:
-
你能发布你预期的输出df
-
@pyd,编辑了问题。