Skip to main content
 首页 » 编程设计

python之如何对日期时间和 float 进行插值

2025年05月04日11youxin

我正在使用 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 

请注意,这将为您提供以秒为单位的斜率。您可以修改分母,以小时、天等形式给出它以满足您的目的。