当在DataFrame上使用panda的resample
函数以将刻度数据转换为OHLCV时,会遇到重新采样错误。
我们应该如何解决这个错误?
# Resample data into 30min bins
bars = data.Price.resample('30min', how='ohlc')
volumes = data.Volume.resample('30min', how='sum')
这会产生以下错误:
TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Int64Index'
2条答案
按热度按时间s8vozzvw1#
将索引中的整数时间戳转换为DatetimeIndex:
这将整数解释为自纪元以来的秒数。
例如,给定
收益率
然后
可以计算:
e7arh2l62#
因为
resample()
是为时间序列数据设计的,正如错误所说,它只在索引为datetime、timedelta或period时有效。但是,您也可以使用
on=
参数将列用作grouper,而不使用datetime索引。如果您有一个**MultiIndex Dataframe **,其中一个索引是datetime,那么您可以使用
level=
选择该级别作为grouper。也可以使用
resample.agg
传递多个方法。