def count_by_keys(df, *args):
    """
    A convenience method that isolates specified columns in the dataframe and gets counts. Drops when keys have NAs.

    :param df: dataframe
    :param args: str, column names in dataframe

    :return: df, dataframe with each of args and an additional column, Count
    """
    args = list(args)
    return df[args].dropna().assign(Count=1).groupby(args).count().reset_index()