绘制Pandas groupy对象为堆叠水平条形图

0 投票
2 回答
707 浏览
提问于 2025-04-18 10:21

我有一个 pandas 的 DataFrame,我用 groupby 把它整理成了下面这个格式:

Building Type 1            1000 - 3000m2      0.766355
                           3000 - 10000m2     0.140187
                           300 - 1000m2       0.084112
                           10000 - 30000m2    0.009346
Building Type 2            1000 - 3000m2      1.000000
Building Type 3            1000 - 3000m2      0.666667
                           3000 - 10000m2     0.222222
                           10000 - 30000m2    0.055556
                           300 - 1000m2       0.055556
Building Type 4            1000 - 3000m2      0.526316
                           3000 - 10000m2     0.473684

我想用这个数据创建一个横向的堆叠条形图,每种建筑类型对应一根条。简单来说,我想把数据转换成下面这个格式:

Building Type       300 - 1000m2    1000 - 3000m2   3000 - 10000m2  10000 - 30000m2
Building Type 1     0.084112        0.766355        0.140187        0.009346
Building Type 2                     1.000000
Building Type 3     0.055556        0.666667        0.222222        0.055556
Building Type 4                     0.526316        0.473684

我需要用什么函数才能做到这一点呢?

2 个回答

0
piv = pd.pivot_table(datasetname, values="counts",index=["buildingtype"], columns=["m2"], fill_value=0)

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

0

这比我想的简单多了。其实就是在 groupby 对象上调用 unstack,然后再画图。

df = grouped.unstack()
df.plot(kind='barh', stacked=True)

关于堆叠和拆分的文档

撰写回答