2017-08-04 10 views
1

パンダ散布図:インデックス私は、単純なパンダのデータフレーム持っている範囲外の

deltasimple dfstart_hour、およびend_hourはあるが、すべてのnumpy.int64

type(df.delta[0]) 
->numpy.int64 

私がしようとするたびにPandasメソッドを使用して散布図を作成すると、「IndexError:インデックスが範囲外です」というメッセージが表示されます。たとえば:

sc2 = df.plot.scatter(x=df.delta, y=df.start_hour) 

は生成します。

IndexError Traceback (most recent call last) <ipython-input-118-4d521c29b97f> in <module>() ----> 1 sc2 = df.plot.scatter(x=df.delta, y=df.start_hour) ... /mnt/xarfuse/uid-116535/[edit]/pandas/core/indexing.pyc in maybe_convert_indices(indices, n) IndexError: indices are out-of-bounds

this postで説明したように、私はまた、numpyのアレイに明示的な変換を試してみた:

df_x = np.array(df['delta'].tolist()) 
df_y = np.array(df['start_hour'].tolist()) 
sc1 = df.plot.scatter(x=df_x, y=df_y) 

同じエラーが発生します。

私は何かが恋しいと確信していますは本当にです。ヘルプは高く評価しました!もしxにDF [「デルタ」]を通過するときに、xとyの値は

sc2 = df.plot.scatter(x='delta', y='start_hour') 

、すなわちような方法を散乱させる単にカラム名を渡す必要があるので

答えて

4

それは、key error : not in index返しdf[df['delta']]ようになります例

df = pd.DataFrame({'delta':[162,9,9,38,691,58],'start_hour':[1,5,11,1,7,6],'last_hour':[3,5,11,2,19,7]}) 
sc2 = df.plot.scatter(x='delta', y='start_hour') 
plt.show() 

enter image description here

あなたがnumpyの配列を渡したい場合は、検索をいけませんそれのためにdfで。すなわちdireclty例えば

df_x = np.array(df['delta'].tolist()) 
df_y = np.array(df['start_hour'].tolist()) 
plt.scatter(x=df_x, y=df_y) 
plt.show() 

plt.scatterはそれが

+0

卿が、それはあなたのために働くんでしたお役に立てば幸いでしょうか? – Dark

+0

ありがとうございます!それは確かに、問題を解決しました! – jbeldock

関連する問題