Load national-level data

Simulated data is provided as an example for each data type and format in the following sections.

CSV

To load the simulated CSV data using CsvDataLoader:

  1. Map the column names to the variable types. The required variable types are time, controls, kpi, revenue_per_kpi, media and media_spend. For the definition of each variable, see Collect and organize your data.

    coord_to_columns = load.CoordToColumns(
        time='time',
        controls=['GQV', 'Discount', 'Competitor_Sales'],
        kpi='conversions',
        revenue_per_kpi='revenue_per_conversion',
        media=[
            'Channel0_impression',
            'Channel1_impression',
            'Channel2_impression',
            'Channel3_impression',
            'Channel4_impression',
            'Channel5_impression',
        ],
        media_spend=[
            'Channel0_spend',
            'Channel1_spend',
            'Channel2_spend',
            'Channel3_spend',
            'Channel4_spend',
            'Channel5_spend',
        ],
    )
    
  2. Map the media variables and the media spends to the designated channel names that you want to display in the two-page output. In the following example, Channel0_impression and Channel0_spend are connected to the same channel, Channel0.

    correct_media_to_channel = {
        'Channel0_impression': 'Channel0',
        'Channel1_impression': 'Channel1',
        'Channel2_impression': 'Channel2',
        'Channel3_impression': 'Channel3',
        'Channel4_impression': 'Channel4',
        'Channel5_impression': 'Channel5',
    }
    correct_media_spend_to_channel = {
        'Channel0_spend': 'Channel0',
        'Channel1_spend': 'Channel1',
        'Channel2_spend': 'Channel2',
        'Channel3_spend': 'Channel3',
        'Channel4_spend': 'Channel4',
        'Channel5_spend': 'Channel5',
    }
    
  3. Load the data using CsvDataLoader:

    loader = load.CsvDataLoader(
        csv_path=f'/{PATH}/{FILENAME}.csv',
        kpi_type='non_revenue',
        coord_to_columns=coord_to_columns,
        media_to_channel=correct_media_to_channel,
        media_spend_to_channel=correct_media_spend_to_channel,
    )
    data = loader.load()
    

    Where:

    • kpi_type is either 'revenue' or 'non_revenue'.
    • PATH is the path to the data file location.
    • FILENAME is the name of your data file.

Xarray Dataset

To load the simulated Xarray Dataset using XrDatasetDataLoader:

  1. Load the data using pickle:

    import pickle
    with open(f'/{PATH}/{FILENAME}.pkl', 'r') as fh:
      XrDataset=pickle.load(fh)
    

    Where:

    • PATH is the path to the data file location.
    • FILENAME is the name of your data file.
  2. Pass the dataset to XrDatasetDataLoader. Use the name_mapping argument to map the coordinates and arrays. Provide mapping if the names in the input dataset are different from the required names. The required coordinate names are time, control_variable, and media_channel. The required data variables names are kpi, revenue_per_kpi, controls, media, and media_spend.

    loader = load.XrDatasetDataLoader(
        XrDataset,
        kpi_type='non_revenue',
        name_mapping={'channel': 'media_channel',
                      'control': 'control_variable',
                      'conversions': 'kpi',
                      'revenue_per_conversion': 'revenue_per_kpi',
                      'control_value': 'controls',
                      'spend': 'media_spend'},
    )
    
    data = loader.load()
    

    Where:

    • kpi_type is either 'revenue' or 'non_revenue'.

Other Data Format

To load the simulated other data format (such as excel) using DataFrameDataLoader:

  1. Map the column names to the variable types. The required variable types are time, controls, kpi, revenue_per_kpi, media, and media_spend. For the definition of each variable, see Collect and organize your data.

    coord_to_columns = load.CoordToColumns(
        time='time',
        controls=['GQV', 'Discount', 'Competitor_Sales'],
        kpi='conversions',
        revenue_per_kpi='revenue_per_conversion',
        media=[
            'Channel0_impression',
            'Channel1_impression',
            'Channel2_impression',
            'Channel3_impression',
            'Channel4_impression',
            'Channel5_impression',
        ],
        media_spend=[
            'Channel0_spend',
            'Channel1_spend',
            'Channel2_spend',
            'Channel3_spend',
            'Channel4_spend',
            'Channel5_spend',
        ],
    )
    
  2. Map the media variables and the media spends to the designated channel names that you want to display in the two-page output. In the following example, Channel0_impression and Channel0_spend are connected to the same channel, Channel0.

    correct_media_to_channel = {
        'Channel0_impression': 'Channel0',
        'Channel1_impression': 'Channel1',
        'Channel2_impression': 'Channel2',
        'Channel3_impression': 'Channel3',
        'Channel4_impression': 'Channel4',
        'Channel5_impression': 'Channel5',
    }
    correct_media_spend_to_channel = {
        'Channel0_spend': 'Channel0',
        'Channel1_spend': 'Channel1',
        'Channel2_spend': 'Channel2',
        'Channel3_spend': 'Channel3',
        'Channel4_spend': 'Channel4',
        'Channel5_spend': 'Channel5',
    }
    
  3. Read the data (such as excel) into DataFrameDataLoader, and then load the data:

    df=pd.read_excel(f'/{PATH}/{FILENAME}.xlsx')
    loader = load.DataFrameDataLoader(
        df=df,
        kpi_type='non_revenue',
        coord_to_columns=coord_to_columns,
        media_to_channel=correct_media_to_channel,
        media_spend_to_channel=correct_media_spend_to_channel,
    )
    
    data = loader.load()
    

    Where:

    • kpi_type is either 'revenue' or 'non_revenue'.
    • PATH is the path to the data file location.
    • FILENAME is the name of your data file.

Next, you can create your model.