我有一个时间序列,我正在重新采样到5s窗口,例如:
INDEX size price
2018-05-07 21:53:13.731 0.365127 9391.800000
2018-05-07 21:53:16.201 0.666127 9391.800000
2018-05-07 21:53:18.038 0.143104 9391.800000
2018-05-07 21:53:18.243 0.025643 9391.800000
2018-05-07 21:53:18.265 0.640484 9391.800000
2018-05-07 21:53:18.906 -0.100000 9391.793421
2018-05-07 21:53:19.829 0.559516 9391.800000
2018-05-07 21:53:19.846 0.100000 9391.800000
2018-05-07 21:53:19.870 0.006560 9391.800000
2018-05-07 21:53:20.734 0.666076 9391.800000
2018-05-07 21:53:20.775 0.666076 9391.800000
2018-05-07 21:53:28.607 0.100000 9391.800000
2018-05-07 21:53:28.610 0.041991 9391.800000
2018-05-07 21:53:29.283 -0.053518 9391.793421
2018-05-07 21:53:47.322 -0.046302 9391.793421
2018-05-07 21:53:49.182 0.100000 9391.800000
def tick_features(x):
volume = np.abs(x['size']).sum()
num_trades = x['size'].count()
return pd.Series([volume,num_trades], index=['volume','num_trades'])
tick = tick.groupby(pd.Grouper(freq='5S')).apply(tick_features)
如何通过pd.Grouper()
和.apply()
获取每个5S的第一个和最后一个元素?你知道吗
我可以用.resample().agg()
和{'price':'first'}
做类似的事情,但是出于其他原因,如果可能的话,我想通过pd.Grouper()
来做。你知道吗
我建议将^{} 与元组和函数列表
first
和last
一起使用:apply
解决方案是可能的,但需要if-else
声明:相关问题 更多 >
编程相关推荐