方法一使用 resample
按照网上案例写得,很简短,不过 apply 给字典参数的操作没有看懂。而且可能是因为中午休市的原因,超过六十分钟以上,取样会出问题,一天会出现五根一小时 k 线(一天四个交易时)
写法为
ohlc_dict ={
'o':'first',
'h':'max',
'l':'min',
'c': 'last'
}
dft = dft.resample(period, closed='right',label = 'right').apply(ohlc_dict).dropna()
方法二是用 cut dfx =pd.DataFrame()
df['tst'] = pd.cut(df.index,right=False,bins=range(len(df))[::120])
dfx['o']=df.groupby('tst')['o'].first()
dfx['c']=df.groupby('tst')['c'].last()
dfx['h']=df.groupby('tst')['h'].max()
dfx['l']=df.groupby('tst')['l'].min()
dfx['trade_date']=df.groupby('tst')['trade_date'].last() 感觉太丑了...希望能给点优化意见