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

无法遍历DataFrame列报错:'float' object is not subscriptable 求助

问题排查与解决

错误原因

报错"float' object is not subscriptable"的核心原因是:你的Ticket satisfaction comment列中存在空值(NaN,属于float类型)。当apply遍历到这些空值时,执行x[:500]相当于对float类型的NaN做切片操作,这在Python里是不允许的,所以触发了错误。

解决方案

第一步:处理列中的空值

先确认空值数量,再选择合适的处理方式:

# 查看空值总数
print(df['Ticket satisfaction comment'].isna().sum())

# 方式1:直接删除含空值的行(适合空值占比低的情况)
df = df.dropna(subset=['Ticket satisfaction comment'])

# 方式2:将空值替换为空字符串(适合需要保留行的情况)
df['Ticket satisfaction comment'] = df['Ticket satisfaction comment'].fillna('')

第二步:给评分函数加容错逻辑

修改sentiment_score函数,提前过滤非字符串输入,避免后续再触发同类错误:

def sentiment_score(comment):
    # 若输入不是字符串(比如NaN、数字),转为空字符串
    if not isinstance(comment, str):
        comment = ''
    # 截取前500字符(空字符串切片无影响)
    tokens = tokenizer.encode(comment[:500], return_tensors='pt')
    result = model(tokens)
    return int(torch.argmax(result.logits)) + 1

第三步:重新运行apply

df["sentiment"] = df['Ticket satisfaction comment'].apply(sentiment_score)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:02:42