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

处理IMDb评分时出现TypeError: 'float' object is not subscriptable报错如何解决

报错原因
  • 核心问题是df['IMDb']列中已经存在float类型的数值,并非所有值都是带/10后缀的字符串。float类型不支持下标切片操作,对float执行rating[0:3]就会触发这个TypeError。
  • 你原写法中硬切前3位的逻辑兼容性极差,如果遇到10/10这类两位整数的评分,切片会得到10/,转float时也会抛出格式错误。
修正方案

两种常用的兼容写法:

写法1:pandas向量化操作(性能更高,推荐)

df['IMDb'] = df['IMDb'].astype(str).str.replace('/10', '').astype(float)

写法2:兼容的列表推导式写法

df['IMDb'] = [float(str(rating).split('/')[0]) for rating in df['IMDb']]

两种写法都是先把所有值统一转为字符串,再通过替换或者分割的方式提取评分数值,不会受原有值的类型、评分位数影响,适配性更强。

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

相关产品推荐
方舟 Agent Plan

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

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