使用Bokeh展示pandas数据框

18

有没有一种好的方法可以使用Bokeh显示数据框?我有一堆基于表格的文本需要显示,并希望随着一些图形一起动态更新,但是我还没有找到一个好的方法来实现这个。

3个回答

19
你应该查看bokeh.models.widgets.DataTable。 http://docs.bokeh.org/en/latest/docs/user_guide/interaction.html#data-table 示例:
from datetime import date
from random import randint

from bokeh.models import ColumnDataSource
from bokeh.models.widgets import DataTable, DateFormatter, TableColumn
from bokeh.io import output_file, show, vform

output_file("data_table.html")

data = dict(
        dates=[date(2014, 3, i+1) for i in range(10)],
        downloads=[randint(0, 100) for i in range(10)],
    )
source = ColumnDataSource(data)

columns = [
        TableColumn(field="dates", title="Date", formatter=DateFormatter()),
        TableColumn(field="downloads", title="Downloads"),
    ]
data_table = DataTable(source=source, columns=columns, width=400, height=280)

show(vform(data_table))

你可以像这样与你自己的 DataFrame 交换数据:

data = dict(df[['first', 'second']])

如果列名不同,请将变量"columns"更改为:

columns = [
        TableColumn(field="first", title="First"),
        TableColumn(field="second", title="Second"),
    ]

15
将Pandas DataFrame DF转换为Bokeh表格,可以使用列表推导式设置表格:

要将Pandas DataFrame DF转换为Bokeh中的表格,您可以使用列表推导式来设置表格:

from bokeh.models.widgets import DataTable, DateFormatter, TableColumn

Columns = [TableColumn(field=Ci, title=Ci) for Ci in DF.columns] # bokeh columns
data_table = DataTable(columns=Columns, source=ColumnDataSource(DF)) # bokeh table

show(data_table)

假设您希望Bokeh列与DF列名匹配,但如果需要,这很容易修改。

Translated:

假设您希望 Bokeh 的列与数据框(DF)的列名相匹配,但如果需要,这可以轻松修改。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接