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

如何解决pandas绘图时出现的TypeError: string indices must be integers错误

解决TypeError: string indices must be integers绘图错误

错误原因

这个报错核心是**payment_ym未被正确识别为DataFrame的列**,或者绘图参数传递格式有误:

  • 创建t2后,原透视表的payment_ym是索引而非列,如果重置索引的操作没生效(比如没重新赋值给t2,或遗漏inplace=True),调用plot(x='payment_ym')时,pandas会尝试用字符串索引去访问列,触发类型错误。
  • 另外,y参数外层多套了一层括号(y=(['列名'])),虽然语法合法,但可能引发解析异常。

修复步骤

  1. 确保索引正确转为列
    创建t2时直接完成重置索引操作:
# 创建t2的同时重置索引,将payment_ym转为列
t2 = t1[['19.01-19.02','19.03-19.04','19.05-19.07']].reset_index()

或者分两步执行:

t2 = t1[['19.01-19.02','19.03-19.04','19.05-19.07']]
# 重置索引并生效
t2.reset_index(inplace=True)
  1. 修正绘图参数格式
    去掉y参数外层的括号,直接传入列名列表:
t2.plot(x='payment_ym', y=['19.01-19.02', '19.03-19.04', '19.05-19.07'], kind='bar')

验证方法

执行完重置索引后,先打印列名确认payment_ym已转为列:

print(t2.columns)
# 预期输出: Index(['payment_ym', '19.01-19.02', '19.03-19.04', '19.05-19.07'], dtype='object')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:15:25