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

Pandas数据库列值转浮点型报错:TypeError原因排查

解决Value列转换浮点型时的TypeError问题

错误原因

你的代码抛出TypeError: 'float' object is not subscriptable,核心原因是Value列中存在float类型的空值(NaN)。当apply遍历到这些NaN值时,lambda表达式里的x[1:]试图对float类型的对象执行下标切片操作,但float对象不支持这种操作,因此触发错误。

解决方案

推荐两种更稳妥的处理方式:

方式1:先统一转为字符串再处理空值

jeopardy["Value_float"] = jeopardy['Value'].astype(str).apply(
    lambda x: float(x[1:].replace(',', "")) if x != 'nan' else float('nan')
)

先把整列转成字符串类型,避免遇到float类型的NaN,再判断并跳过空值的转换。

方式2:使用pandas内置的数值转换工具(更高效)

jeopardy["Value_float"] = pd.to_numeric(
    jeopardy['Value'].str.replace('$', '').str.replace(',', ''),
    errors='coerce'
)

利用str.replace批量清除$和逗号,再用pd.to_numeric转换,errors='coerce'参数会把无法转换的内容(比如空值)自动转为NaN,比apply遍历更高效,也更符合pandas的惯用写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 07:13:14