Pandas - K线数据处理 - 数据聚合

本文主要介绍如何使用Pandas的DataFrame.resample方法进行K线数据的聚合操作,包括3分钟和30秒的聚合实例,以及自定义聚合逻辑。内容涵盖从1分钟数据转换为5分钟和10分钟数据的业务实现,强调了时间戳间隔和数据区间的处理细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、K线分析

二、pandas.DataFrame.resample - 内置聚合方法

2-0  测试数据初始化

2-1 resample 的 3分钟聚合

2-2 resample 的 30s 拆成

2-3 自定义聚合逻辑 - apply

2-4  DataFrame 对象的 resample 处理方式

三、K线聚合的业务实现

方式一、获取批量数据 + 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 - 内置聚合方法

官方 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值