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

pandas使用diff计算列差值报TypeError: string indices must be integers问题咨询

报错根本原因

你看到的TypeError: string indices must be integers和assists列的类型无关,本质是当前你代码里的df变量根本不是Pandas DataFrame对象,而是字符串类型。字符串只支持整数下标取值,你用['assists']这种字符串索引取值自然会抛出该错误。
你提到此前可以正常计算均值、标准差,说明你之前的df还是正常的DataFrame对象,大概率是后续执行了误操作把df赋值成了字符串,比如执行了df = str(df)、读文件时未做解析直接读成了字符串等。

解决步骤
  • 第一步先确认df的实际类型,执行代码:
    print(type(df))
    如果输出为<class 'str'>,即可验证上述判断,你需要回溯之前的代码,找到把df覆盖为字符串的操作,重新生成正确的DataFrame对象。
  • 确认df是正常DataFrame后,再处理assists列的类型转换,因为列内同时存在整数和浮点数,直接统一转换为float类型即可:
    df['assists'] = pd.to_numeric(df['assists'], errors='coerce')
    参数errors='coerce'会自动把无法转换为数字的异常值替换为NaN,避免转换过程报错。
  • 类型转换完成后,再执行差值计算即可正常运行:
    df['Dif'] = df['assists'].diff()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:57:03