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
:
Map the column names to the variable types. The required variable types are
time
,geo
,controls
,population
,kpi
,revenue_per_kpi
,media
, andmedia_spend
. For media channels that have no direct cost, you must assign their media exposure toorganic_media
. For non-media treatments, you must assign the corresponding columns names tonon_media_treatments
. For the definition of each variable, see Collect and organize your data.coord_to_columns = load.CoordToColumns( time='time', geo='geo', controls=['GQV', 'Competitor_Sales'], population='population', kpi='conversions', revenue_per_kpi='revenue_per_conversion', media=[ 'Channel0_impression', 'Channel1_impression', 'Channel2_impression', 'Channel3_impression', 'Channel4_impression', ], media_spend=[ 'Channel0_spend', 'Channel1_spend', 'Channel2_spend', 'Channel3_spend', 'Channel4_spend', ], organic_media=['Organic_channel0_impression'], non_media_treatments=['Promo'], )
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
andChannel0_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', } correct_media_spend_to_channel = { 'Channel0_spend': 'Channel0', 'Channel1_spend': 'Channel1', 'Channel2_spend': 'Channel2', 'Channel3_spend': 'Channel3', 'Channel4_spend': 'Channel4', }
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
:
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.
Pass the dataset to
XrDatasetDataLoader
. Use thename_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 aregeo
,time
,control_variable
,media_channel
,organic_media_channel
, andnon_media_channel
. The required data variables names arekpi
,revenue_per_kpi
,controls
,population
,media
,media_spend
,organic_media
, andnon_media_treatments
.loader = load.XrDatasetDataLoader( XrDataset, kpi_type='non_revenue', name_mapping={'channel': 'media_channel', 'control': 'control_variable', 'organic_channel': 'organic_media_channel', 'non_media_treatment': 'non_media_channel', 'conversions': 'kpi', 'revenue_per_conversion': 'revenue_per_kpi', 'control_value': 'controls', 'spend': 'media_spend', 'non_media_treatment_value': 'non_media_treatments'}, ) 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
:
Map the column names to the variable types. The required variable types are
time
,geo
,controls
,population
,kpi
,revenue_per_kpi
,media
, andmedia_spend
. For media channels that have no direct cost, you must assign their media exposure toorganic_media
. For non-media treatments, you must assign the corresponding columns names tonon_media_treatments
. For the definition of each variable, see Collect and organize your data.coord_to_columns = load.CoordToColumns( time='time', geo='geo', controls=['GQV', 'Competitor_Sales'], population='population', kpi='conversions', revenue_per_kpi='revenue_per_conversion', media=[ 'Channel0_impression', 'Channel1_impression', 'Channel2_impression', 'Channel3_impression', 'Channel4_impression', ], media_spend=[ 'Channel0_spend', 'Channel1_spend', 'Channel2_spend', 'Channel3_spend', 'Channel4_spend', ], )
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
andChannel0_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', } correct_media_spend_to_channel = { 'Channel0_spend': 'Channel0', 'Channel1_spend': 'Channel1', 'Channel2_spend': 'Channel2', 'Channel3_spend': 'Channel3', 'Channel4_spend': 'Channel4', }
Read the data (such as
excel
) intoDataFrameDataLoader
, 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.