Bokeh:AttributeError:'DataFrame'对象没有属性'tolist'

时间:2017-02-18 14:00:48

标签: python pandas bokeh

我是pandas和bokeh的新手,我正在尝试从pandas数据框创建一个散点图。但是,我一直收到以下错误:

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)

编辑: 我没有使用tolist(),但是散景的Scatter()会产生并产生下面的错误。

2 个答案:

答案 0 :(得分:9)

您错误地使用了str1 <- "S156 B1-1 U500 (HTA-1 0).SST RMA gene.sst-rma-gene-full-Signal" 。您想:tolist后跟.values

tolist()

对于上述数据框,要将X和Y值作为列表获取,您可以执行以下操作:

  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]

答案 1 :(得分:0)

我首先从数据框中提取相关列来解决问题。

df = df.loc[:, ('type', 'tsneX', 'tsneY')

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