Python透视表后Date列转索引引发KeyError问题求助
解决透视表后DatetimeIndex引发的KeyError问题
问题根源很明确:你用pd.pivot_table生成df2时,把Date设为了行索引,此时它是DatetimeIndex类型,不再是普通的数据列。当你绘图时指定x='Date',程序会去列里找这个字段,自然会触发KeyError。
给你三种实用的解决办法:
方法1:重置索引,将Date转为普通列
如果后续还需要把Date当作列来操作,直接重置索引就行:
df2 = df2.reset_index() # 之后绘图就可以正常用x='Date'了,比如: df2.plot(x='Date', y='你的目标列名')
方法2:绘图时直接使用索引作为X轴
不想改动数据结构的话,直接调用索引作为X轴数据源:
用Matplotlib绘图
import matplotlib.pyplot as plt plt.plot(df2.index, df2['目标列名']) plt.xlabel('Date') # 手动给X轴加标签 plt.show()
用Seaborn绘图
import seaborn as sns sns.lineplot(data=df2, x=df2.index, y='目标列名')
方法3:用Pandas自带绘图时指定use_index参数
Pandas的绘图函数支持直接用索引当X轴,只需开启use_index:
df2.plot(use_index=True, xlabel='Date', y='目标列名')
内容的提问来源于stack exchange,提问作者Brian Michaels
相关产品推荐
相关产品推荐

