This message was deleted.
# hamilton-help
s
This message was deleted.
đź‘€ 1
s
Thanks for the question @Si Yan. With Hamilton “vector” thinking is encouraged. E.g. one way to rewrite what you have is:
Copy code
company_mapping = {
    "Bank": "Bank Other",
    "Bank Treasury": "Bank Other",
    "Private Bank": "Bank Other",
    "Regional Broker": "Bank Other",
    "Bank Other": "Bank Other",
    "Asset Manager": "Asset Manager Other",
    "Insurance": "Asset Manager Other",
    "Pension Fund": "Asset Manager Other",
    "Pension/Endowmnt": "Asset Manager Other",
    "Asset Manager Other": "Asset Manager Other"
}

def company_std_type(company_type: pd.Series) -> pd.Series:
    """Converts company type to standard type"""
    mapped = company_type.replace(company_mapping)
    mapped[~mapped.isin(["Bank Other", "Asset Manager Other"])] = "Other"
    return mapped
another way would be to use apply:
Copy code
def _company_std_apply(x):
   if x in ["Bank", "Bank Treasury", "Private Bank", "Regional Broker", "Bank Other"]:
       return "Bank Other"
   elif x in ["Asset Manager","Insurance","Pension Fund","Pension/Endowmnt","Asset Manager Other"]:
       return "Asset Manager Other"
   else:
       return "Other"

def company_std_type(company_type: pd.Series) -> pd.Series:
    """Converts company type to standard type"""
    mapped = company_type.apply(_company_std_apply)
    return mapped
👍 1
in general if you can avoid doing loops your computation will be faster. The last one is close to your original way, but it’s using
apply
instead of a for loop.
s
Thanks for giving the two examples.
s
You're welcome!