2016-05-04 17 views
2

私はパンダのバージョン0.18.0とmatplotlibの1.5.1を使用しています。KeyError:0L building 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)) 

ボックスプロットを作成しようとしたときにエラーが発生した原因は何ですか?どんな助けもありがたい。場合

+2

私はそれがバグだと思います。私は同様の問題に遭遇しましたが、それがボックスプロットについてのものかどうかは覚えていません。 df = df [(df ['colA']> 1000)&(df ['colA'] <5000)]。reset_index(drop = True)この場合、matplotlibは0から始まるインデックスを探しています。 'または' 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; Plotは、名前付きの列やスライスなどでは機能しないインデックス0以降を検索しようとします。.valuesを使用するか、インデックスをリセットするとこれが解決されます。この情報については@ayhanする

賞賛。