我有 2 个便笺的刻度数据(scrip_names 是 abc 和 xyz)。由于报价数据处于“第二”级别,我想将其转换为 1 分钟级别的 OHLC(开盘价、最高价、最低价、收盘价)。
当刻度数据仅包含 1 个脚本时,我使用以下代码(Single Scrip.py 的 OHLC)来获取 1 分钟级别的 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=pd.DataFrame(ticks)
#ticks=ticks.where(ticks['scrip_name']=="abc")
#ticks=ticks.where(ticks['scrip_name']=="xyz")
ticks['timestamp'] = pd.to_datetime(ticks['timestamp'])
ticks=ticks.set_index(['timestamp'])
ohlc_prep=ticks.loc[:,['last_price']]
ohlc_1_min=ohlc_prep['last_price'].resample('1min').ohlc().dropna()
ohlc_1_min.to_csv(r'C:\Users\tech\Downloads\ohlc_1_min.csv')
结果:
但是,当刻度数据包含超过 1 个脚本时,此代码不起作用。应该对代码进行哪些修改以获得以下按 scrip_name 分组的结果(文件名:expected_result.csv)。
预期结果:
以下是刻度数据、单个脚本的 python 代码、单个脚本的结果以及多个脚本的期望结果的链接: https ://drive.google.com/file/d/1Y3jngm94hqAW_IJm-FAsl3SArVhnjGJE/view ?usp=sharing
任何帮助深表感谢。
谢谢你。