我正在使用 scipy 进行一维插值在时间序列上。我的 x 轴数据是日期时间格式,y 轴是 float ,如:
3/15/2012 16:00:00 32.94
3/16/2012 16:00:00 32.95
3/19/2012 16:00:00 32.61
现在在斜率计算期间 slope = (y_hi-y_lo)/(x_hi-x_lo) 我收到错误 TypeError: unsupported operand type(s) for/: 'float' and 'datetime.timedelta' 这是一个明显的错误。有人能指出我正确的方向吗?如何处理?
请您参考如下方法:
您的问题是您试图将 float 除以 datetime.timedelta 对象,正如您所说,这显然会引发 TypeError。
您可以使用 datetime.timedelta.total_seconds() 将 datetime.timedelta 对象转换为代表该 timedelta 内总秒数的 float 实例方法。
在这种情况下,您可以将代码修改为:
slope_numerator = y_hi - y_lo
slope_denominator = (x_hi - x_lo).total_seconds()
slope = slope_numerator / slope_denominator
请注意,这将为您提供以秒为单位的斜率。您可以修改分母,以小时、天等形式给出它以满足您的目的。
