python – 带有索引的Pandas Plot导致’KeyError []不在索引中

python – 带有索引的Pandas Plot导致’KeyError []不在索引中,第1张

概述我是 Python中Pandas概念的新手.通常情节不是问题.但是,我现在面临的是包含索引的数据框.不知何故什么都没有了. 我想要实现的目标: 为每个列[Plant1,Plant2,Plant3]创建一个特定柱[Trafo1]的子图. 这是我的代码: import numpy as npimport datetimeimport numpy as npimport matplotlibim 我是 Python中Pandas概念的新手.通常情节不是问题.但是,我现在面临的是包含索引的数据框.不知何故什么都没有了.

我想要实现的目标:
为每个列[Plant1,Plant2,Plant3]创建一个特定柱[Trafo1]的子图.

这是我的代码:

import numpy as npimport datetimeimport numpy as npimport matplotlibimport matplotlib.pyplot as pltimport pandas as pdimport os# Create the sample dataplant1 = {'Date' : pd.date_range('1/1/2011',periods=10,freq='D'),'Plant' : pd.SerIEs(["Plant1"]*10),'Output' : pd.SerIEs(abs(np.random.randn(10)))}plant2 = {'Date' : pd.date_range('1/3/2011','Plant' : pd.SerIEs(["Plant2"]*10),'Output' : pd.SerIEs(abs(np.random.randn(10)))}plant3 = {'Date' : pd.date_range('1/5/2011','Plant' : pd.SerIEs(["Plant3"]*10),'Output' : pd.SerIEs(abs(np.random.randn(10)))}     trafo1 = {'Date' : pd.date_range('1/5/2011','Plant' : pd.SerIEs(["Trafo1"]*10),'Output' : pd.SerIEs(abs(np.random.randn(10)))}          trafo2 = {'Date' : pd.date_range('1/5/2011','Plant' : pd.SerIEs(["Trafo2"]*10),'Output' : pd.SerIEs(abs(np.random.randn(10)))}          df_plant_1 = pd.DataFrame(plant1)df_plant_2 = pd.DataFrame(plant2)df_plant_3 = pd.DataFrame(plant3)df_trafo_1 = pd.DataFrame(trafo1)df_trafo_2 = pd.DataFrame(trafo2)sample = pd.concat([df_plant_1,df_plant_2,df_plant_3,df_trafo_1,df_trafo_2])test = pd.pivot_table(sample,index='Date',columns='Plant',values='Output')test = test.fillna(method='pad')                            test = test.fillna(method='bfill')     # Draw the plotsmatplotlib.style.use('ggplot')cols = len(test.columns) - 1fig,axes = plt.subplots(nrows=cols/2,ncols=2,figsize=(12,4))for column in test.iloc[:,:-1]:    test.plot(x=test[column],y=test['Trafo1'],Title=column)    plt.gca().set_aspect('equal',adjustable='Box')    plt.show()

导致以下错误输出:

runfile('C:/..../unTitled12.py',wdir='C:/...')Traceback (most recent call last):  file "<ipython-input-206-1acb55933d7f>",line 1,in <module>    runfile('C:/Users/bjl/unTitled12.py',wdir='C:/Users/bjl')  file "C:\Anaconda2\lib\site-packages\spyderlib\Widgets\externalshell\sitecustomize.py",line 699,in runfile    execfile(filename,namespace)  file "C:\Anaconda2\lib\site-packages\spyderlib\Widgets\externalshell\sitecustomize.py",line 74,in execfile    exec(compile(scripttext,filename,'exec'),glob,loc)  file "C:/Users/bjl/unTitled12.py",line 52,in <module>    test.plot(x=test[column],Title=column)  file "C:\Anaconda2\lib\site-packages\pandas\tools\plotting.py",line 3671,in __call__    sort_columns=sort_columns,**kwds)  file "C:\Anaconda2\lib\site-packages\pandas\tools\plotting.py",line 2556,in plot_frame    **kwds)  file "C:\Anaconda2\lib\site-packages\pandas\tools\plotting.py",line 2370,in _plot    serIEs = data[y].copy()  # Don't modify  file "C:\Anaconda2\lib\site-packages\pandas\core\frame.py",line 1963,in __getitem__    return self._getitem_array(key)  file "C:\Anaconda2\lib\site-packages\pandas\core\frame.py",line 2007,in _getitem_array    indexer = self.ix._convert_to_indexer(key,axis=1)  file "C:\Anaconda2\lib\site-packages\pandas\core\indexing.py",line 1150,in _convert_to_indexer    raise KeyError('%s not in index' % objarr[mask])KeyError: '[ 1.20311253  1.20311253  1.20311253  1.20311253  1.20311253  0.32765014\n  1.65686117  2.58118029  0.58903059  0.13907876  0.59270297  0.27072611\n  0.50167366  1.0310578 ] not in index'

我不明白索引的问题是什么.我无法在线找到任何帮助,因为所有示例都没有索引.

我非常感谢你的帮助.这个错误对新手来说很神秘.

解决方法 根据 docs,您应该在绘制这种方式时给出列名,而不是列本身.所以更换:

test.plot(x=test[column],Title=column)

test.plot(x=column,y='Trafo1',Title=column)

应该解决这个错误.

编辑:
至于子图,要在右侧子图中获取它,您必须指定您希望图最终的轴.您可以通过以下方式:

for i,column in enumerate(test.iloc[:,:-2]):    j = i // 2    k = i % 2    test.plot(x=column,Title=column,ax=axes[j][k])

现在在所有轴上进行你想要的 *** 作(虽然它真的搞砸了)

for ax in axes.reshape(4):    ax.set_aspect('equal',adjustable='Box')

显示情节:)

plt.show()
总结

以上是内存溢出为你收集整理的python – 带有索引的Pandas Plot导致’KeyError []不在索引中全部内容,希望文章能够帮你解决python – 带有索引的Pandas Plot导致’KeyError []不在索引中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1193770.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存