Des données simulées sont fournies à titre d'exemple pour chaque type et format de données dans les sections suivantes.
CSV
Pour charger les données CSV simulées à l'aide de CsvDataLoader
:
Mappez les noms de colonnes avec les types de variables. Les types de variables requis sont
time
,controls
,kpi
,revenue_per_kpi
,media
etmedia_spend
. Pour connaître la définition de chaque variable, consultez Collecter et organiser vos données.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', ], )
Mappez les variables et les dépenses média sur les noms de canaux désignés que vous souhaitez afficher dans la sortie sur deux pages. Dans l'exemple suivant,
Channel0_impression
etChannel0_spend
sont connectés au même canal :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', }
Chargez les données à l'aide de
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()
Où :
kpi_type
correspond à'revenue'
ou'non_revenue'
.PATH
est le chemin d'accès au fichier de données.FILENAME
est le nom de votre fichier de données.
Ensemble de données Xarray
Pour charger l'ensemble de données Xarray simulées à l'aide de XrDatasetDataLoader
:
Chargez les données à l'aide de
pickle
:import pickle with open(f'/{PATH}/{FILENAME}.pkl', 'r') as fh: XrDataset=pickle.load(fh)
Où :
PATH
est le chemin d'accès au fichier de données.FILENAME
est le nom de votre fichier de données.
Transmettez l'ensemble de données à
XrDatasetDataLoader
. Utilisez l'argumentname_mapping
pour mapper les coordonnées et les tableaux. Fournissez un mappage si les noms de l'ensemble de données d'entrée sont différents des noms requis. Les noms de coordonnées requis sonttime
,control_variable
etmedia_channel
. Les noms de variables de données requis sontkpi
,revenue_per_kpi
,controls
,media
etmedia_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()
Où :
kpi_type
correspond à'revenue'
ou'non_revenue'
.
ndarray Numpy
Pour charger directement des tableaux ndarray Numpy, utilisez NDArrayInputDataBuilder
:
Ajoutez les données dans des tableaux ndarray Numpy distincts.
import numpy as np kpi_nd = np.array([[1, 2, 3]]) controls_nd = np.array([[[1, 2], [3, 4], [5, 6]]]) revenue_per_kpi_nd = np.array([[1, 2, 3]]) media_nd = np.array([[[1, 2], [3, 4], [5, 6]]]) media_spend_nd = np.array([[[1, 2], [3, 4], [5, 6]]])
Utilisez un module
NDArrayInputDataBuilder
pour définir l'heure et attribuer les noms requis aux canaux ou aux dimensions dans les données d'entrée de Meridian. Pour connaître la définition de chaque variable, consultez Collecter et organiser vos données.from meridian.data import nd_array_input_data_builder as data_builder builder = ( data_builder.NDArrayInputDataBuilder(kpi_type='non_revenue') ) builder.time_coords = ['2024-01-02', '2024-01-03', '2024-01-01'] builder.media_time_coords = ['2024-01-02', '2024-01-03', '2024-01-01'] builder = ( builder .with_kpi(kpi_nd) .with_revenue_per_kpi(revenue_per_kpi_nd) .with_controls( controls_nd, control_names=["control0", "control1"]) .with_media( m_nd=media_nd, ms_nd=media_spend_nd, media_channels=["channel0", "channel1"] ) ) data = builder.build()
Où :
kpi_type
correspond à'revenue'
ou'non_revenue'
.
DataFrames pandas ou autres formats de données
Pour charger un autre format de données simulées (par exemple, excel
) à l'aide de DataFrameInputDataBuilder
:
Lisez les données (par exemple, une feuille de calcul
excel
) dans un ou plusieursDataFrame
pandas.import pandas as pd df = pd.read_excel( 'https://github.com/google/meridian/raw/main/meridian/data/simulated_data/xlsx/national_media.xlsx', engine='openpyxl', )
Utilisez un module
DataFrameInputDataBuilder
pour mapper les noms de colonnes aux types de variables requis dans les données d'entrée Meridian. Pour connaître la définition de chaque variable, consultez Collecter et organiser vos données.from meridian.data import data_frame_input_data_builder as data_builder builder = data_builder.DataFrameInputDataBuilder( kpi_type='non_revenue', default_kpi_column="conversions", default_revenue_per_kpi_column="revenue_per_conversion", ) builder = ( builder .with_kpi(df) .with_revenue_per_kpi(df) .with_controls(df, control_cols=["GQV", "Discount", "Competitor_Sales"]) ) channels = ["Channel0", "Channel1", "Channel2", "Channel3", "Channel4", "Channel5"] builder = builder.with_media( df, media_cols=[f"{channel}_impression" for channel in channels], media_spend_cols=[f"{channel}_spend" for channel in channels], media_channels=channels, ) data = builder.build()
Où :
kpi_type
correspond à'revenue'
ou'non_revenue'
.
Vous pouvez ensuite créer votre modèle.