Pandas调用plot.line绘图出现KeyError: 索引不在[columns]中问题求助
KeyError报错原因
pandas的DataFrame.plot.line()方法的x参数设计为接收列名(字符串/列名标识),而非直接传入索引值数组。
你调用时传入x=df1.index,程序会默认去DataFrame的列列表(A、B、C、D)中查找和你传入的索引值一致的列名,显然不存在匹配项,因此触发KeyError。
正确实现方案
- 方案1:省略x参数,默认使用DataFrame索引作为x轴
这是最简单的写法,pandas绘图默认就会将索引作为横轴,不需要额外指定:df1.plot.line(y='A', figsize=(12,3), lw=1) - 方案2:显式指定索引作为x轴
如果你的索引设置了名称,也可以将索引名传给x参数:# 先查看索引名称 print(df1.index.name) # 假设索引名为date,执行以下代码 df1.plot.line(x='date', y='A', figsize=(12,3), lw=1) - 方案3:索引转列后绘图
也可以先把索引重置为普通列再指定x:df1.reset_index().plot.line(x='index', y='A', figsize=(12,3), lw=1)
内容的提问来源于stack exchange,提问作者Amit Govind Sharma
相关产品推荐
相关产品推荐

