Bokeh: AttributeError: 'DataFrame' object has no attribute 'tolist'
Bokeh: AttributeError: 'DataFrame' object has no attribute 'tolist'
我是 pandas 和散景的新手,我正在尝试从 pandas 数据框创建散点图。但是,我不断收到以下错误:
new_data[colname] = df[colname].tolist()
AttributeError: 'DataFrame' object has no attribute 'tolist'
使用来自 bokeh 的虚拟数据(来自 bokeh.sampledata.iris import flowers as data)散点效果很好。
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() 会产生以下错误。
您使用的 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
我通过首先从数据框中提取相关列解决了这个问题。
df = df.loc[:, ('type', 'tsneX', 'tsneY')
scatter = Scatter(df, x='tsneX', y='tsneY',
color='type', marker='type',
title='t-sne',
legend=True)
我是 pandas 和散景的新手,我正在尝试从 pandas 数据框创建散点图。但是,我不断收到以下错误:
new_data[colname] = df[colname].tolist()
AttributeError: 'DataFrame' object has no attribute 'tolist'
使用来自 bokeh 的虚拟数据(来自 bokeh.sampledata.iris import flowers as data)散点效果很好。
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() 会产生以下错误。
您使用的 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
我通过首先从数据框中提取相关列解决了这个问题。
df = df.loc[:, ('type', 'tsneX', 'tsneY')
scatter = Scatter(df, x='tsneX', y='tsneY',
color='type', marker='type',
title='t-sne',
legend=True)