基于Pandas Resample实现多Scrip Tick数据生成1分钟OHLC的代码修改问题
多Scrip Tick数据转1分钟OHLC解决方案
修改思路
只需在原代码基础上增加按scrip_name分组的逻辑,对每个Scrip单独做重采样计算OHLC即可,修改后的完整代码如下:
完整修改后代码
import os import time import datetime import pandas as pd import numpy as np ticks = pd.read_csv(r'C:\Users\tech\Downloads\ticks.csv') ticks['timestamp'] = pd.to_datetime(ticks['timestamp']) # 按scrip_name分组后,每组按1分钟重采样计算last_price的OHLC ohlc_1_min = ticks.groupby('scrip_name', group_keys=True)\ .resample('1min', on='timestamp')['last_price']\ .ohlc()\ .dropna() # 重置索引,将scrip_name、timestamp转为普通列,匹配预期输出格式 ohlc_1_min = ohlc_1_min.reset_index() # 导出结果 ohlc_1_min.to_csv(r'C:\Users\tech\Downloads\expected_result.csv', index=False)
关键修改说明
- 新增
groupby('scrip_name')逻辑,实现不同Scrip的独立计算,不会混合不同标的的价格数据 - 重采样时通过
on='timestamp'指定时间列,无需提前将timestamp设为索引 - 最后通过
reset_index()把分组用的scrip_name和时间索引转为普通列,输出格式和预期示例一致
内容的提问来源于stack exchange,提问作者lenmet
相关产品推荐
相关产品推荐

