我有一个数据框,其中包含具有以下列的股票数据:
time ticker price
0 2020-04-02 09:30:35 EV 33.860
1 2020-04-02 09:00:00 AMG 60.430
2 2020-04-02 09:30:35 AMG 60.750
3 2020-04-02 09:00:00 BLK 455.350
4 2020-04-02 09:30:35 BLK 451.514
... ... ... ...
502596 2020-04-02 13:00:56 TLT 166.450
502597 2020-04-02 13:00:56 VXX 47.150
502598 2020-04-02 13:00:56 TSLA 529.800
502599 2020-04-02 13:00:56 BIDU 103.500
502600 2020-04-02 13:00:56 ON 12.700
它的股票价格数据每20秒就有几百只股票。我已将时间列转换为日期时间格式
从这里开始,我需要将数据分成5分钟的间隔,然后绘制数据,我使用:
out = df.groupby("ticker")\
.apply(lambda x: x.set_index("time")\
.resample("5T")\
.first()\
.reset_index())\
.reset_index(drop=True)
dffinal = out.dropna(axis=0)
def plot_tick(data, ticker):
ts = data[data["ticker"]==ticker].reset_index(drop=True)
ts.plot(x="time", y="price",title=ticker,figsize=(20,20),kind='line')
plot_tick(dffinal, "A")
图表显示的很好,但问题是我需要每个股票每5分钟间隔的高、低、开盘和收盘价格。我需要这个来制作一个烛台图,一旦我有了高、低、开和闭的列,我就可以很容易地做这个
开盘价和收盘价分别为5分钟时段开始和结束时的价格。“高”和“低”列分别是区间内的最高价格和区间内的最低价格
所以我在寻找这样的结果:
time ticker price open close high low
0 2020-04-02 09:00:00 A 72.6700
6 2020-04-02 09:30:00 A 72.1400
7 2020-04-02 09:35:00 A 72.5400
8 2020-04-02 09:40:00 A 72.4000
9 2020-04-02 09:45:00 A 72.3338
... ... ... ...
38895 2020-04-02 12:40:00 ZUMZ 17.6000
38896 2020-04-02 12:45:00 ZUMZ 17.6300
38897 2020-04-02 12:50:00 ZUMZ 17.6000
38898 2020-04-02 12:55:00 ZUMZ 17.7400
38899 2020-04-02 13:00:00 ZUMZ 17.560
很明显,有开的,有关的,有高的,有低的
IIUC,在} 。在} ,其中
groupby
中,您可以通过“ticker”完成,但也可以使用频率为5分钟的“time”上的^{agg
方法中,可以使用since pandas>;0.25^{first
表示开放,last
表示关闭,max
表示高,min
表示低要使用plotly打印烛台,可以执行以下操作:
相关问题 更多 >
编程相关推荐