2017-02-18 11 views
1

私はpandasとbokehの新人です。私はpandasデータフレームから散布図を作成しようとしています。Bokeh:AttributeError: 'DataFrame'オブジェクトに 'tolist'属性がありません

new_data[colname] = df[colname].tolist() 
AttributeError: 'DataFrame' object has no attribute 'tolist' 

を散乱は正常に動作します(データとしてbokeh.sampledata.iris輸入花から)ボケからのダミーデータを使用して:しかし、私は次のエラーを取得しておきます。

type tsneX  tsneY  +50.000 columns 
0 A  53.828863 20.740931 
1 B  57.816909 18.478468 
2 A  55.913429 22.948167 
3 C  56.603005 15.738954 


scatter = Scatter(df, x='tsneX', y='tsneY', 
        color='type', marker='type', 
        title='t-sne', 
        legend=True) 

編集: I)は、(ToListメソッドを使用していないんだけど、ボケの散布は、()は、以下のエラーを生成します。

+0

例えば、 'print(new_data.head(5))'のようなデータのサンプルを投稿し、 'X'列と' Y'列を説明できますか? – MaxU

+0

それは50.000以上のカラムを持ちますので、それほど簡単ではありません。しかし、私はdf = df.loc [:,( 'type'、 'tsneX'、 'tsneY')]を実行することによってそれを動作させました。私はこれがどのように問題を解決するのかわかりませんが、うまくいきます。 – Jab

+1

Bokehの問題は何ですか? – MaxU

答えて

0

データフレームから関連する列を最初に抽出することで問題を解決しました。

3

tolistが間違って使用されています。あなたが欲しい:.valuesはあなたが行うことができますリストとしてあなたのXとYの値を取得するには、上記データフレームについてtolist()

type tsneX  tsneY 
0 A  53.828863 20.740931 
1 B  57.816909 18.478468 
2 A  55.913429 22.948167 
3 C  56.603005 15.738954 

続い:

tsneY_data = df['tsneY'].values.tolist() 
>> [20.740931, 18.478468, 22.948167, 15.7389541] 

tsneX_data = df['tsneX'].values.tolist() 
>> [53.828863, 57.816909, 55.913429, 56.603005] 

あなたが列にこれを設定しようとしてきたように

new_data = pd.DataFrame() 
new_data['tsneY'] = df['tsneY'].tolist() 

> new_data 
     tsneY 
0 20.740931 
1 18.478468 
2 22.948167 
3 15.738954 
+0

@Jabこれはあなたの問題を解決するのに役立ちましたか? – Chuck

関連する問題