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

使用polyglot做情感分析调用pandas apply时报function对象不可下标错如何解决

问题修复方案

报错根因

你遇到的TypeError: 'function' object is not subscriptable报错和你定义的sentiment函数本身无关,核心问题是变量名冲突:
你用来承接pandas DataFrame的变量名text,和你代码中提前定义/导入的某个同名函数重名了,当你执行text["sentiment"]按下标取值时,程序将text识别为函数,而函数本身不支持[]下标操作,因此抛出错误。

你可以先执行print(type(text))验证,如果输出为<class 'function'>即可确认是该问题。

修复步骤

  1. 优先修改DataFrame的变量名,避免和其他函数/对象重名,比如改为通用的df:
# 将原来给text赋值DataFrame的代码替换为如下格式,示例如下
import pandas as pd
df = pd.read_csv("你的数据源路径.csv") # 替换为你自己的DataFrame生成逻辑

# 执行apply操作即可正常运行
df["sentiment"] = df["word"].apply(sentiment)
  1. 如果你需要把sentiment函数返回的两个结果分别存储为单独的列,可以直接拆分返回的元组,不需要修改原有函数:
# 写法1:轻量数据场景适用
df[["text_obj", "polarity"]] = df["word"].apply(sentiment).apply(pd.Series)

# 写法2:大数据量场景性能更优
df["text_obj"], df["polarity"] = zip(*df["word"].apply(sentiment))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 21:21:04