build_multi_value_map_list()

Build a list of MultiValueMap objects from a pandas DataFrame.

Usage

Source

build_multi_value_map_list(
    df,
    source_cols,
    target_cols,
    valid_from_col="valid_from",
    valid_to_col="valid_to"
)

Iterates through the DataFrame rows to create mapping objects that map values from multiple source columns to multiple target columns.

Parameters

df: pd.DataFrame

DataFrame where each row represents a mapping.

source_cols: Sequence[str]

Column names for source values.

target_cols: Sequence[str]

Column names for target values.

valid_from_col: str = "valid_from"

Optional column name for validity start date. Defaults to “valid_from”.

valid_to_col: str = "valid_to"
Optional column name for validity end date. Defaults to “valid_to”.

Returns

list[MultiValueMap]
List of MultiValueMap objects created from the DataFrame.

Raises

ValueError

If DataFrame is empty or required columns are missing.

TypeError
If source or target columns contain non-string values.

Examples

>>> import pandas as pd
>>> data = {
...     'country': ['DE', 'CH'],
...     'currency_src': ['LC', 'LC'],
...     'currency_tgt': ['EUR', 'CHF'],
...     'region_tgt': ['EU', 'Non-EU']
... }
>>> df = pd.DataFrame(data)
>>> maps = build_multi_value_map_list(
...     df,
...     ['country', 'currency_src'],
...     ['currency_tgt', 'region_tgt']
... )
>>> len(maps)
2
>>> maps[0].source
('DE', 'LC')
>>> maps[0].target
('EUR', 'EU')