Groupby 两列和条形图第三列 pandas

Groupby two columns and bar plot third column pandas

我有一个数据框如下,我想通过对模型和调度程序列进行分组来绘制多个条形图。例如第一个你的多个条属于 ecaresnet50t 三个不同的调度程序并代表 mae 分数。第二个三个倍数代表resnest50d scheduler的mae等等

         model     scheduler    mae
0   ecaresnet50t      warm      4.518
1   ecaresnet50t      cosine    4.46
2   ecaresnet50t      constant  4.972
3   resnest50d        warm      4.056
4   resnest50d        cosine    4.1
5   resnest50d        constant  5.072
6   resnetrs50        warm      4.164
7   resnetrs50        cosine    4.154
8   resnetrs50        constant  4.644
9   seresnet50        warm      4.202

我试过这样的事情 (df.groupby(['model','scheduler'])['mae'].plot.bar()) 但它不起作用

使用支点table。它们正是您正在寻找的,并且在这种情况下比多索引 groupby 更容易使用。

df_pivot = pd.pivot_table(df, 
                          values="mae", 
                          index="model", 
                          columns="scheduler", 
                          aggfunc=np.mean)

df_pivot.plot.bar()