pandas and bokehが初めてで、pandasデータフレームから散布図を作成しようとしています。しかし、次のエラーが発生し続けます。
new_data[colname] = df[colname].tolist()
AttributeError: 'DataFrame' object has no attribute 'tolist'
Bokehからのダミーデータ(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)
編集:私はtolist()を使用していませんが、BokehのScatter()は以下のエラーを発生させます。
最初にデータフレームから関連する列を抽出することで問題を解決しました。
df = df.loc[:, ('type', 'tsneX', 'tsneY')
scatter = Scatter(df, x='tsneX', y='tsneY',
color='type', marker='type',
title='t-sne',
legend=True)
tolist
を誤って使用しています。必要なもの:_.values
_に続いて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
_
上記のデータフレームの場合、X値とY値をリストとして取得するには、次のようにします。
_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'].values.tolist()
> new_data
tsneY
0 20.740931
1 18.478468
2 22.948167
3 15.738954
_