2016-05-04 56 views
2

我使用熊貓版本0.18.0和matplotlib 1.5.1版本。KeyError:0L building boxplot

當試圖創建boxplot時,我收到KeyError:0L

df = df[(df['colA'] > 1000) & (df['colA'] < 5000)] 
plt.boxplot(df['ColA']) 

的時候我不上df進行過濾,是沒有任何問題產生的代碼運行和箱線圖。

當我使用已過濾的df繪製直方圖時,此工作原理沒有任何錯誤。

plt.hist(df['ColA'], range(1000,5000,500)) 

試圖創建boxplot時導致錯誤的原因是什麼?任何幫助讚賞。

+2

我認爲這是一個錯誤。我遇到了類似的問題,但我不記得它是否是boxplot。 matplotlib正在尋找一個從0開始的索引。解決方法是:'df = df [(df ['colA']> 1000)&(df ['colA'] <5000)]。reset_index(drop = True) ''或'plt.boxplot(df ['ColA']。values)' – ayhan

+0

這裏有一個類似的問題:http://stackoverflow.com/questions/12406162/keyerror-when-plotting-a-sliced-pandas-dataframe-with -datetimes – ayhan

+0

太棒了,感謝您的解決方法和鏈接類似的問題。我會盡快測試這些解決方法,並讓您知道我的工作方式。 –

回答

1

如果你錯過了它,而谷歌搜索(像我幾乎沒有),答案是對這個問題的意見:

  • 使用.valuesplt.boxplot(df['ColA'].values)
  • this question找到更多解釋和選項。
    • tldr;繪圖試圖從索引0開始,這不適用於命名列或切片等...使用.values或重置索引將解決此問題。

榮譽給@ayhan此信息。