def split_names(data, names, fosa_types, drop):
    """Separates facility type prefix from facility name
    inputs
        data: data frame containing source data from IASO
        names: column name to split
        fosa_types: list of facility types
        drop: list of prefixes indicating row should be dropped from data
        
    outputs
        data frame with name column separated into fosa type and fosa name columns
    """
    type_pattern = '|'.join(fosa_types)
    data.loc[:, "fosa_type"] = data.loc[:, names].str.extract('('+type_pattern+')', expand=True)
    data.loc[:, "fosa_name"] = data.loc[:, names].str.replace(type_pattern, "")

    data = data[~(data[names].isin(drop))]
    data = data[~(data.fosa_name.isin(drop))]
    return data