我有一些财务数据(例如):
prices
open_price. high. low. close_price
2018-09-03 00:00:00+00:00 103.24 103.77 102.95 103.89
2018-09-04 00:00:00+00:00 103.89 104.10 103.50 103.95
2018-09-05 00:00:00+00:00 103.95 104.20 103.90 104.15
2018-09-06 00:00:00+00:00 104.15 104.56 103.50 104.20
(...)
2018-09-19 00:00:00+00:00 108.42 108.85 108.19. 108.60
2018-09-20 00:00:00+00:00 108.60 108.89 108.40 108.75
我试图按2天的时间对这些数据进行分组。如果我使用
prices.resample('2B', closed='left', label='left').first()
财务日期如下:
open_price. high. low. close_price
2018-09-03 00:00:00+00:00 103.24 103.77 102.95 103.89
2018-09-05 00:00:00+00:00 103.95 104.20 103.90 104.15
(...)
2018-09-19 00:00:00+00:00 108.42 108.85 108.19. 108.60
我正在寻找一种方法:日期2018-09-03
将采用2018-09-03
的开盘价,2018-09-03
和2018-09-04
的最低价和最高价,以及最终2018-09-04
的收盘价...下一个日期将是2018-09-05
,以2018-09-05
的开盘价,2018-09-05
和2018-09-06
的最低价和最高价以及终于2018-09-06
结束了。
它应该看起来像这样:
open_price. high. low. close_price
2018-09-03 00:00:00+00:00 103.24 104.10 102.95 103.95
2018-09-05 00:00:00+00:00 103.95 104.56 103.50 104.20
(...)
2018-09-19 00:00:00+00:00 108.42 108.89 108.19. 108.60
有没有简单的方法可以做到这一点?谢谢。
答案 0 :(得分:1)
您可以将resample
与agg
一起使用
d={'open_price.':'first','high.':'max','low.':'min','close_price':'last'}
df.resample('2B', closed='left', label='left').agg(d)
Out[1031]:
open_price. high. low. close_price
2018-09-03 103.24 104.10 102.95 103.95
2018-09-05 103.95 104.56 103.50 104.20