绘制Pandas groupy对象为堆叠水平条形图
我有一个 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)