【问题标题】:Trying to plot a pandas dataframe groupby with Bokeh尝试使用 Bokeh 绘制熊猫数据框 groupby
【发布时间】:2017-12-12 22:28:51
【问题描述】:

这里是新的,但我已经搜索了几个小时,似乎无法找到解决方案。我想要做的是在散景图中显示数据框的聚合。我尝试使用 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>

关于在带有散景的图表中绘制 groupby 对象的任何想法?

提前致谢!

【问题讨论】:

  • 您的代码对我来说很好用(Pandas 0.21.0,Bokeh 0.12.11)。考虑升级 Pandas 或/和 Bokeh...
  • 谢谢马克斯。我已经安装了 Pandas '0.20.3' 和 Bokey '0.12.5'​​,所以让我尝试升级到 Pandas 0.21.1。不过我这边也有同样的错误..
  • 没关系,升级到 Bokeh 0.12.13 现在可以使用了!谢谢麦克斯!!
  • 这是在 Bokeh 0.12.7 中添加的 FYI bokeh.github.io/blog/2017/8/29/release-0-12-7
  • 谢谢!!这非常非常有用!

标签: python-3.x pandas dataframe bokeh


【解决方案1】:

我没有使用 Bokeh,但据我所知,您传递的是 pandas.core.groupby.DataFrameGroupByColumnDataSource 期待 pd.DataFrame。也就是说,问题在于,当使用 groupby 时,您会创建一个类似于键值存储的数据结构。所以groups 对象中的每个组都将有一个键和值,该值就是您正在寻找的 DataFrame。如下所示运行您的代码将帮助您了解将groupby() 应用于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') 替换为 groups = df.group('A')

【讨论】:

    猜你喜欢
    • 2016-04-21
    • 2020-03-25
    • 2020-05-06
    • 2018-03-10
    • 2017-05-28
    • 2022-01-08
    • 2016-10-09
    • 2013-12-19
    • 2021-04-30
    相关资源
    最近更新 更多