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

Python中调用len()报object of type 'int' has no len()错误如何解决

报错原因

你代码中每次循环赋值的x是单个分组的行数,属于整数类型,整数本身不存在len()方法,因此触发报错。你要获取的输出序列总长度本质是分组的总个数,需要先把所有分组长度存到集合类对象中再统计长度。

解决方法

方案1:修改原有循环逻辑

在循环外初始化空列表存储所有分组长度,后续直接对列表调用len()即可得到序列总长度:

len_list = []
for i in set(data['MovementNumber'].values):
    data2 = data.loc[data['MovementNumber'] == i]
    x = len(data2)
    len_list.append(x)
    print(x)

# 输出数值序列的总长度
print(len(len_list))
# 若需要统计所有分组的总行数,可直接对列表求和
print(sum(len_list))

方案2:用pandas内置方法简化实现

直接使用pandas的分组统计功能,无需手动写循环,代码更高效简洁:

# 直接统计每个MovementNumber对应的行数,返回Series对象
group_size = data.groupby('MovementNumber').size()
# 输出数值序列总长度
print(len(group_size))
# 输出分组长度的数值列表
print(group_size.tolist())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:36:04