在Python中按组绘制来自两个单独数据帧的所有列

时间:2017-10-22 14:39:28

标签: python pandas plot pandas-groupby

我有两个数据框,其中包含许多列和行,其结构与下面的示例相同:

DF1:

Time    Group   Var1    Var2    Var3
1/1/2016    A   0.1     1.1     2.1
2/1/2016    A   0.2     1.2     2.2  
1/1/2016    B   3.5     4.5     5.5
2/1/2016    B   3.6     4.6     5.6

DF2:

Time     Group  Var1    Var2    Var3
1/1/2016    A   0.3     1.3     2.3
2/1/2016    A   0.4     1.4     2.4
1/1/2016    B   3.7     4.7     5.7
2/1/2016    B   3.8     4.8     5.8

我想编写一个代码,每列创建一个图,每个组都有Time作为x轴,并在同一个图上绘制每个数据框中具有相同名称的列。

我能够编写一个执行此操作但不会因组而异的代码:

df1_agg = df1.groupby(by =['Time']).sum()
df2_agg = df2.groupby(by =['Time']).sum()

def plots_all_columns(col_names, filename):
    with PdfPages(filename) as pdf:
        for i in col_names:
            plt.figure()
            df1_agg[i].plot(label="df1", legend=True, title = i)
            df2_agg[i].plot(label="df2", legend=True)
            pdf.savefig()
            plt.close('all')

我怎么能像上面那样做,但在我的数据框中保持Group维度?我有很多小组,所以我需要为每个小组类别单独绘制一个小区。

谢谢。

0 个答案:

没有答案