| import pandas as pd | |
| def config_band(df: pd.DataFrame) -> pd.DataFrame: | |
| """ | |
| Create a dataframe that contains the site configuration band for each site code. | |
| Parameters | |
| ---------- | |
| df : pd.DataFrame | |
| The dataframe containing the site information, with columns "code" and "band" | |
| Returns | |
| ------- | |
| pd.DataFrame | |
| The dataframe containing the site configuration band for each site code, with columns "code" and "site_config_band" | |
| """ | |
| df_band = df[["code", "band"]].copy() | |
| df_band["ID"] = df_band[["code", "band"]].astype(str).apply("_".join, axis=1) | |
| # remove duplicates ID | |
| df_band = df_band.drop_duplicates(subset=["ID"]) | |
| df_band = df_band[["code", "band"]] | |
| df_band["band"] = df_band["band"].fillna("empty") | |
| df_band = ( | |
| df_band.groupby("code")["band"] | |
| .apply(lambda x: "/".join(sorted(x))) | |
| .reset_index() | |
| ) | |
| # rename band to config | |
| df_band.rename(columns={"band": "site_config_band"}, inplace=True) | |
| return df_band | |