def order_df_columns_by_run(dataframe):
    """
    Returns a dataframe with re-ordered columns such that second column up to column 'mean'
    are ordered by run number from low to high
    """
    cols = dataframe.columns.tolist()
    stats_start_idx = cols.index("mean")
    to_sort = cols[:stats_start_idx]
    no_sort = cols[stats_start_idx:]
    to_sort.sort(key=lambda x: int(x.split(".")[0].split("_Run")[1]))
    new_cols = to_sort + no_sort
    return dataframe[new_cols]