You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DataFrame中datetime.time与int类型除法运算报错的解决方法

解决datetime.time与int除法运算的问题

因为datetime.time对象不支持直接和整数做除法运算,得先把时间转换成可计算的数值,完成除法后再转回时间格式,具体步骤如下:

  • 第一步:将time列转换为总秒数
    先把datetime.time类型转成字符串,再用pd.to_timedelta转为时间差类型,最后提取总秒数:

    result['total_seconds'] = pd.to_timedelta(result['time'].astype(str)).dt.total_seconds()
    
  • 第二步:计算平均秒数
    用总秒数除以days列的整数,得到每天的平均秒数:

    result['avg_seconds'] = result['total_seconds'] / result['days']
    
  • 第三步:将平均秒数转回datetime.time类型
    把平均秒数转成时间差类型,再提取其中的time属性:

    result['avg_time'] = pd.to_timedelta(result['avg_seconds'], unit='s').dt.time
    

如果想简化成一行代码,也可以这么写:

result['avg_time'] = (pd.to_timedelta(result['time'].astype(str)).dt.total_seconds() / result['days']
                     .apply(lambda sec: pd.to_timedelta(sec, unit='s').time()))

注意:如果计算出的平均秒数带有小数,转成datetime.time时会保留微秒部分,要是不需要可以提前对avg_seconds做取整处理,比如result['avg_seconds'] = (result['total_seconds'] / result['days']).round()。

内容的提问来源于stack exchange,提问作者Grzegorz Z

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 19:16:03