试图用Bokeh绘制一个pandas数据帧组

时间:2017-12-12 22:28:52

标签: python-3.x pandas dataframe bokeh

这是新的,但我现在一直在寻找几个小时,似乎无法找到解决方案。我想要做的是在散景图表中显示数据框的集合。我尝试使用groupby对象,但是在将groupby对象传递给ColumnDataSource时出现错误(如下面的帖子中所述)。

how use bokeh vbar chart parameter with groupby object?

以下是我正在使用的一些示例代码:

import pandas
from bokeh.models import ColumnDataSource
df = pandas.DataFrame(np.random.randn(50, 4), columns=list('ABCD'))
group = df.groupby("A")
source = ColumnDataSource(group)

出现此错误:

ValueError: expected a dict or pandas.DataFrame, got <pandas.core.groupby.DataFrameGroupBy object at 0x103f7bfd0>

有关使用Bokeh在图表中绘制groupby对象的任何想法吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我没有使用过Bokeh,但是从我看到你传递的是struct C { explicit C() {} }; struct A { inline static C c; }; pandas.core.groupby.DataFrameGroupBy期待ColumnDataSource。这就是说,当使用groupby时,你需要创建一个类似于key,value存储的数据结构。因此,pd.DataFrame对象中的每个组都有一个键和值,该值是您正在寻找的DataFrame。如下所示运行代码有助于您了解从groupsgroupby()应用的结果数据结构:

DataFrame

请注意,我已将groups = df.group('A') for group in groups: # get group key key = group[0] # Get group df group_df = group[1] 替换为group = df.group('A')