import pandas
[docs]
def suffix_columns(
table: pandas.DataFrame, suffix: str, except_cols: list[str] = None, inplace: bool = True
) -> pandas.DataFrame:
"""
Suffixes column names with the given ``suffix``. If a column name is listed in ``except_cols``, its name
is kept as-is.
If the ``inplace`` parameter is set to ``True`` (the default), it is
**Example:**
>>> from ppc_robot_lib.reporting.transformation import suffix_columns
>>> suffix_columns(performance, '_yday', except_cols=['Id', 'CampaignName'])
:param table: Input table.
:param suffix: Suffix to add to column names.
:param except_cols: List of collumn names that will not be suffixed.
:return: Updated table. If ``inplace=True``, the same instance is returned.
"""
if except_cols is None:
except_cols = set()
rename = {}
for column in table.columns:
if column not in except_cols:
rename[column] = column + suffix
new_table = table.rename(columns=rename, inplace=inplace)
if inplace:
return table
else:
return new_table