Как вы работаете с Pandas GroupBy в Боке? - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь построить эти данные, используя боке. Я пытаюсь построить линейный график, но он показывает ошибку в источнике, а также как добавить всплывающую подсказку?

Кроме того, я получил эти данные после выполнения групповой передачи на фрейме данных.

данные:

books_alloted
Friday       13893
Monday       14471
Saturday     14237
Sunday       11695
Thursday     14731
Tuesday      14900
Wednesday    16073
Name: books_alloted, dtype: int64

ошибка:

expected a dict or pandas.DataFrame, got books_alloted

Ответы [ 2 ]

2 голосов
/ 03 июля 2019

У вас есть очень старая версия Bokeh? Как и в любой последней версии, вы можете передавать объекты Pandas GroupBy непосредственно объектам Bokeh ColumnDataSource. При вводе GroupBy источник данных будет автоматически заполняться столбцами, соответствующими методу group.describe:

from bokeh.io import show
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure
from bokeh.sampledata.autompg import autompg as df

df.cyl = df.cyl.astype(str)
group = df.groupby('cyl')

source = ColumnDataSource(group)

p = figure(plot_height=350, toolbar_location=None, tools="")

p.line(x='cyl', y='mpg_mean', source=source)

show(p)

enter image description here

См. Раздел Pandas в Обработка категориальных данных для получения дополнительной информации.

1 голос
/ 03 июля 2019

Вы можете использовать

# read the data
df = pd.read_csv("data.csv")

# generate the plot
p = figure(title="book plot", x_axis_label="dates", y_axis_label="alloted", x_range=df.loc[:,"books"])
p.line(df.loc[:,"books"], df.loc[:,"num"], legend="books", line_width=2) # num is the number of books alloted
show(p)

это решение: enter image description here

...