Identifies IL type based on name/str

    Parameters
    ----------
    salts: pandas DataFrame
        dataframe containing column with cation name

    Returns
    ----------
    salts: pandas DataFrame
        returns the same dataframe with categories

def assign_category(salts):
    """
    Identifies IL type based on name/str

    Parameters
    ----------
    salts: pandas DataFrame
        dataframe containing column with cation name

    Returns
    ----------
    salts: pandas DataFrame
        returns the same dataframe with categories
    """
    if "name-cation" in salts.columns:
        label = "name-cation"
    elif "Molecular Relative" in salts.columns:
        label = "Molecular Relative"
    else:
        print("No salt-name column found in DataFrame")
    category = []
    missed = []
    for i in range(salts.shape[0]):
        if ("imidazol" in salts[label].iloc[i]):
            category.append("Imidazolium")
        elif ("pyridin" in salts[label].iloc[i]):
            category.append("Pyridinium")
        elif ("pyrrolidin" in salts[label].iloc[i]):
            category.append("Pyrrolidinium")
        elif ("piperidin" in salts[label].iloc[i]):
            category.append("Piperidinium")
        elif ("phosphon" in salts[label].iloc[i]):
            category.append("Phosphonium")
        elif ("quinol" in salts[label].iloc[i]):
            category.append("Quinolinium")
        elif ("ammon" in salts[label].iloc[i]):
            category.append("Ammonium")
        elif ("amin" in salts[label].iloc[i]):
            category.append("Aminium")
        else:
            category.append("Other")
            missed.append(salts[label].iloc[i])
    print("ILs labeled as other: {}\n{}".format(len(missed), missed))
    salts["category"] = category
    return salts