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

在网页中展示DataFrame指定列行数据时遭遇TypeError错误的技术求助

问题排查与解决办法

这个TypeError: list indices must be integers or slices, not str错误的核心原因很直观:你代码里的df已经不是Pandas DataFrame对象了,而是变成了一个普通的Python列表。

当你写df['EXTERNAL_DATA2']时,Python会默认按列表索引规则处理,但列表只接受整数(比如df[0])或者切片(比如df[1:3])作为索引,用字符串'EXTERNAL_DATA2'当索引自然就触发了错误。

可能的触发场景

  • 你之前的代码里不小心把df重新赋值成了列表,比如写过类似df = df['SOME_COLUMN'].tolist()的代码,直接把原始DataFrame覆盖成了列表;
  • 加载数据的环节出了问题,比如自定义的读取函数返回了列表而不是DataFrame(不过Pandas的默认读取方法比如pd.read_csv不会出现这种情况)。

解决步骤

  1. 先确认df的类型:在出错的那行代码前面加一行调试代码:
    print(type(df))
    
    如果输出是<class 'list'>,就坐实了我们的判断。
  2. 回溯代码找变量覆盖点:检查你之前处理df的代码,找到把它改成列表的语句,把变量名换掉——比如把列表存到data_list里,保留原始的df作为DataFrame使用。
  3. 如果df是DataFrame列表(少见情况):如果df是一个包含多个DataFrame的列表,那你需要先指定具体的DataFrame索引,再取列,比如:
    # 假设取第一个DataFrame的列
    context={'data': df[0]['EXTERNAL_DATA2'].tolist()}
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 16:04:11