Merges data from the two strands into strand-agnostic counts.

def merge_chromosome_dfs(df_tuple):
    # type: (Tuple[pd.DataFrame, pd.DataFrame]) -> pd.DataFrame
    """Merges data from the two strands into strand-agnostic counts."""

    plus_df, minus_df = df_tuple
    index_cols = "Chromosome Bin".split()
    count_column = plus_df.columns[0]

    if plus_df.empty:
        return return_other(minus_df, count_column, index_cols)
    if minus_df.empty:
        return return_other(plus_df, count_column, index_cols)

    # sum duplicate bins
    # TODO: why are there duplicate bins here in the first place?
    plus_df = plus_df.groupby(index_cols).sum()
    minus_df = minus_df.groupby(index_cols).sum()

    # first sum the two bins from each strand
    df = pd.concat([plus_df, minus_df], axis=1).fillna(0).sum(axis=1)
    df = df.reset_index().sort_values(by="Bin")

    df.columns = ["Chromosome", "Bin", count_column]

    df = df.sort_values(["Chromosome", "Bin"])
    df[["Bin", count_column]] = df[["Bin", count_column]].astype(int32)
    df = df[[count_column, "Chromosome", "Bin"]]
    return df.reset_index(drop=True)