def join_dfs(ground_truth,simulation,join='inner',fill_value=0):

    """
    Join the simulation and ground truth data frames

    Inputs:
    ground_truth - Ground truth measurement data frame with measurement in the "value" column
    simulation - Simulation measurement data frame with measurement in the "value" column
    join - Join method (inner, outer, left, right)
    fill_value - Value for filling NAs or method for filling in NAs (e.g. "ffill" for forward fill)
    """

    df = ground_truth.merge(simulation,
                            on = [c for c in ground_truth.columns if c != 'value'],
                            suffixes = ('_gt','_sim'),
                            how=join)

    try:
        float(fill_value)
        df = df.fillna(fill_value)
    except ValueError:
        df = df.fillna(method=fill_value)

    return(df)