目录
二、pandas.DataFrame.resample - 内置聚合方法
2-4 DataFrame 对象的 resample 处理方式
一、K线分析
需求分析:元数据为1min的k线数据,需要将其置换成 5min、10min 的数据线
细节注意
- 1min to 5min
- 时间戳 间隔为300S
- 数据计算的的区间:[1563156300 ,1563156600 ) - 注意左闭右开
- 即,1min线 9:00-9:04 的数据聚合为 5min线的 9:00 的数据
- k线数据
k线数据:{ _id : 10位时间戳 ts:13位时间戳 vol:成交额, 即 sum(每一笔成交价 * 该笔的成交量) low:最低价 high:最高价 open:开盘价 close:收盘价(当K线为最晚的一根时,是最新成交价) count:成交笔数 amount:成交量 }
二、pandas.DataFrame.resample - 内置聚合方法
2-0 测试数据初始化
# 包含9个一分钟时间戳的系列 index = pandas.date_range('1/1/2000', periods=9, freq='T') series = pandas.Series(range(9), index=index) print(series) ''' 2000-01-01 00:00:00 0 2000-01-01 00:01:00 1 2000-01-01 00:02:00 2 2000-01-01 00:03:00 3 2000-01-01 00:04:00 4 2000-01-01 00:05:00 5 2000-01-01 00:06:00 6 2000-01-01 00:07:00 7 2000-01-01 00:08:00 8 Freq: T, dtype: int64 '''
2-1 resample 的 3分钟聚合
# 默认: sum(0:00 - 0:02) 对应 value(0:00) data = series.resample('3T').sum() print(data) ''' 2000-01-01 00:00:00 3 2000-01-01 00:03:00 12 2000-01-01 00:06:00 21 Freq: 3T, dtype: int64 ''' # label 使用右标记,即,sum(0:00 - 0:02) 对应 value(0:03) data = series.resample('3T',label='right').sum() print(data) ''' 2000-01-01 00:03:00 3 2000-01-01 00:06:00 12 2000-01-01 00:09:00 21 Freq: 3T, dtype: int64 ''' # closed 关闭右区间,即,sum(0:01 - 0:03) 对应 value(0:03) data = series.resample('3T', label='right', closed='right').sum() print(data) ''' 2000-01-01 00:00:00 0 200