def format_time_results()

in parse.py [0:0]


def format_time_results(df_all_epochs, unique_run_id):
    time_delta = df_all_epochs.groupby(unique_run_id)["time"].diff() * 60
    time_delta = time_delta[
        time_delta > 0
    ]  # Remove negative values coming from preemption
    total_time = time_delta.sum().item()
    print("Total compute time : " + str(total_time))
    time_result = time_delta.groupby(["dataset", "method", "#HP", "Groups"]).median()
    average = (
        time_result.groupby(["method", "#HP", "Groups"]).mean().to_frame("Average")
    )
    time_result = time_result.unstack("dataset").sort_index(level="Groups")
    time_result = time_result.join(average).apply(lambda x: x.map("{:.2f}".format))
    print(time_result)
    time_result.to_latex(
        "tables/result_time_h.tex", escape=False, multirow=True, multicolumn=True
    )

    sns.set(style="whitegrid", context="talk")
    g = sns.catplot(
        data=time_delta.to_frame("time").reset_index(),
        x="method",
        y="time",
        col="dataset",
        kind="box",
        sharex=True,
        sharey=False,
        height=6,
        col_wrap=2,
    )
    for ax in g.fig.axes:
        ax.set_yscale("log")
        ax.tick_params(axis="x", labelrotation=45)
    g.set_axis_labels("Method", "Time per epoch in minutes")
    g.set_titles(col_template="{col_name}")
    g.tight_layout()
    plt.savefig(f"figures/time_per_epoch.pdf", dpi=300)
    plt.savefig(f"figures/time_per_epoch.png", dpi=300)