Os dados simulados são fornecidos como exemplos de cada tipo e formato de dados nas seções a seguir.
CSV
Para carregar os dados CSV simulados usando CsvDataLoader:
Mapeie os nomes das colunas para os tipos de variáveis. Os tipos obrigatórios de variáveis são
time,geo,controls,population,kpierevenue_per_kpi. Para canais de mídia que não têm dados de alcance e frequência, atribua a exposição e o gasto de mídia às categoriasmediaemedia_spend, respectivamente. Por outro lado, para canais de mídia que têm esses dados, é necessário mapear o alcance, a frequência e o gasto de mídia para as categoriasreach,frequencyerf_spend. Saiba a definição de cada variável em Coletar e organizar os dados.coord_to_columns = load.CoordToColumns( time='time', geo='geo', controls=['GQV', 'Discount', 'Competitor_Sales'], population='population', kpi='conversions', revenue_per_kpi='revenue_per_conversion', media=[ 'Channel0_impression', 'Channel1_impression', 'Channel2_impression', 'Channel3_impression', ], media_spend=[ 'Channel0_spend', 'Channel1_spend', 'Channel2_spend', 'Channel3_spend', ], reach =['Channel4_reach', 'Channel5_reach'], frequency=['Channel4_frequency', 'Channel5_frequency'], rf_spend=['Channel4_spend', 'Channel5_spend'], )Mapeie a exposição, o alcance, a frequência e os gastos de mídia para os nomes dos canais que você quer mostrar no relatório de duas páginas. No exemplo a seguir,
Channel0_impressioneChannel0_spendestão conectados ao mesmo canal,Channel0. Além disso,Channel4_reach,Channel4_frequencyeChannel4_spendestão conectados ao mesmo canal,Channel4.correct_media_to_channel = { 'Channel0_impression': 'Channel0', 'Channel1_impression': 'Channel1', 'Channel2_impression': 'Channel2', 'Channel3_impression': 'Channel3', } correct_media_spend_to_channel = { 'Channel0_spend': 'Channel0', 'Channel1_spend': 'Channel1', 'Channel2_spend': 'Channel2', 'Channel3_spend': 'Channel3', } correct_reach_to_channel = { 'Channel4_reach': 'Channel4', 'Channel5_reach': 'Channel5', } correct_frequency_to_channel = { 'Channel4_frequency': 'Channel4', 'Channel5_frequency': 'Channel5', } correct_rf_spend_to_channel = { 'Channel4_spend': 'Channel4', 'Channel5_spend': 'Channel5', }Use
CsvDataLoaderpara carregar os dados: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, reach_to_channel=correct_reach_to_channel, frequency_to_channel=correct_frequency_to_channel, rf_spend_to_channel=correct_rf_spend_to_channel, ) data = loader.load()Em que:
kpi_typeé'revenue'ou'non_revenue'.PATHé o caminho do local do arquivo de dados.FILENAMEé o nome do arquivo de dados.
Conjunto de dados Xarray
Para carregar o conjunto de dados Xarray simulado usando XrDatasetDataLoader:
Use
picklepara carregar os dados:import pickle with open(f'/{PATH}/{FILENAME}.pkl', 'r') as fh: dataset=pickle.load(fh)Em que:
PATHé o caminho do local do arquivo de dados.FILENAMEé o nome do arquivo de dados.
Transmita o conjunto de dados para
XrDatasetDataLoader. Use o argumentoname_mappingpara mapear as coordenadas e matrizes. Forneça o mapeamento se os nomes no conjunto de dados de entrada forem diferentes dos nomes obrigatórios. Os nomes obrigatórios de coordenadas sãogeo,time,control_variable,media_channelerf_channel, sendo querf_channelindica que os canais têm dados de alcance e frequência. Os nomes obrigatórios de variáveis de dados sãokpi,revenue_per_kpi,controls,population,media,media_spend,reach,frequencyerf_spend.loader = load.XrDatasetDataLoader( dataset, 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', 'reach': 'reach', 'frequency': 'frequency', 'rf_spend': 'rf_spend', }, ) data = loader.load()Em que:
kpi_typeé'revenue'ou'non_revenue'.
Matriz n-dimensional do Numpy
Para carregar matrizes n-dimensionais do Numpy diretamente, use NDArrayInputDataBuilder:
Crie os dados em matrizes n-dimensionais separadas do Numpy.
import numpy as np kpi_nd = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) controls_nd = np.array([ [[1, 5], [2, 6], [3, 4]], [[7, 8], [9, 10], [11, 12]], [[13, 14], [15, 16], [17, 18]], ]) population_nd = np.array([1, 2, 3]) revenue_per_kpi_nd = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) reach_nd = np.array([ [[1, 5], [2, 6], [3, 4]], [[7, 8], [9, 10], [11, 12]], [[13, 14], [15, 16], [17, 18]], ]) frequency_nd = np.array([ [[1, 5], [2, 6], [3, 4]], [[7, 8], [9, 10], [11, 12]], [[13, 14], [15, 16], [17, 18]], ]) rf_spend_nd = np.array([ [[1, 5], [2, 6], [3, 4]], [[7, 8], [9, 10], [11, 12]], [[13, 14], [15, 16], [17, 18]], ])Use um
NDArrayInputDataBuilderpara definir horários e locais, bem como para atribuir nomes de canais ou dimensões conforme necessário em dados de entrada do Meridian. Saiba a definição de cada variável em Coletar e organizar os dados.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.geos = ['B', 'A', 'C'] builder = ( builder .with_kpi(kpi_nd) .with_revenue_per_kpi(revenue_per_kpi_nd) .with_population(population_nd) .with_controls( controls_nd, control_names=["control0", "control1"]) .with_reach( r_nd=reach_nd, f_nd=frequency_nd, rfs_nd=rf_spend_nd, rf_channels=["channel0", "channel1"] ) ) data = builder.build()Em que:
kpi_typeé'revenue'ou'non_revenue'.
DataFrame do Pandas ou outros formatos de dados
Para carregar os outros formatos de dados simulados (como excel) usando DataFrameInputDataBuilder:
Leia os dados (como uma planilha
excel) em um ou maisDataFramedo Pandas.import pandas as pd df = pd.read_excel( 'https://github.com/google/meridian/raw/main/meridian/data/simulated_data/xlsx/geo_media_rf.xlsx', engine='openpyxl', )Use um
DataFrameInputDataBuildere mapeie os nomes das colunas para os tipos de variáveis necessários nos dados de entrada do Meridian. Saiba a definição de cada variável em Coletar e organizar os dados.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_population(df) .with_controls(df, control_cols=["GQV", "Discount", "Competitor_Sales"]) .with_reach( df, reach_cols = ['Channel4_reach', 'Channel5_reach'], frequency_cols = ['Channel4_frequency', 'Channel5_frequency'], rf_spend_cols = ['Channel4_spend', 'Channel5_spend'], rf_channels = ['Channel4', 'Channel5'], ) ) data = builder.build()Em que:
kpi_typeé'revenue'ou'non_revenue'.
Em seguida, crie o modelo.