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

获取卡车名称并汇总时长时出现Timedelta转int报错如何解决

卡车产能分析代码报错修复方案

报错原因

抛出的错误如下:
int() argument must be a string, a bytes-like object or a number, not 'Timedelta'
该错误的核心诱因是存储结果的变量X预先被定义为仅支持数值类型的结构(如整数数组、数值型列表),而df.Duration.sum()返回的是Timedelta时间差类型,无法自动转换为整数存入X,触发类型不匹配。

修复方案

方案1:适配现有循环逻辑

仅需调整X的初始化逻辑,也可根据需求将求和后的Timedelta转换为对应单位的数值(如总秒数、总小时数)后存入:

# 原代码中初始化X的部分替换为如下空列表
X = []
for i in range(N_Vehicles):
    dur_sum = df[df['Vehicle ID'] == vehicles['Vehicle ID'][i]].Duration.sum()
    X.append(dur_sum)
# 若需转为总小时数值,可将append行替换为:
# X.append(dur_sum.total_seconds() / 3600)

方案2:使用pandas groupby优化(推荐)

无需手动写循环、去重匹配,代码更简洁执行效率更高,可直接替换你现有所有计算逻辑:

# 按车辆ID分组直接求和时长,返回索引为车辆ID、值为总时长的Series
X = df.groupby('Vehicle ID')['Duration'].sum()

# 若需转为总小时数值,修改为如下写法:
# X = df.groupby('Vehicle ID')['Duration'].sum().dt.total_seconds() / 3600

内容的提问来源于stack exchange,提问作者Jonatan Polanco

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:27:01