Información de contacto
Descripción
Indicadores clave de rendimiento o KPIs: medición del éxito empresarial
Cargando y examinando nuestros datos
import pandas as pd
# Datos de los clientes
customer_data = pd.read_csv('user_demographics_v1.csv')
customer_data
# Datos de las compras de la aplicación
app_purchases = pd.read_csv('purchase_data_v1.csv')
app_purchases
Fusionar en diferentes conjuntos de campos
# Cambio de nombre a la columna reg_date debido a que también es una columna en común
customer_data.rename(columns={'reg_date':'date'}, inplace=True)
# Combinar con el campo uid
uid_combined_data = app_purchases.merge(customer_data, on=['uid'], how='inner')
uid_combined_data
Descripción de variables
# Datos de compra
purchase_data = uid_combined_data
# Media y mediana del precio y la edad
purchase_summary = purchase_data.agg({'price': ['mean', 'median'], 'age': ['mean', 'median']})
print(purchase_summary.round(2))
# Agrupación de datos por dispositivo y genero
grouped_purchase_data = purchase_data.groupby(by = ['device', 'gender'])
# Media, mediana y desviación estandar del precio según la data agrupada
purchase_summary = grouped_purchase_data.agg({'price': ['mean', 'median', 'std']})
print(purchase_summary)
Calculando KPIs
from datetime import timedelta
from datetime import datetime
# fecha máxima de compra
current_date = pd.Timestamp(2018, 3, 17)
max_purchase_date = current_date - timedelta(days=28)
# Usuarios que se registraron antes de la fecha máxima
purchase_data = purchase_data.rename(columns={'date_y': 'reg_date'})
purchase_data['reg_date'] = pd.to_datetime(purchase_data['reg_date']).dt.date
purchase_data_filt = purchase_data[purchase_data.reg_date < max_purchase_date]
# Compras dentro de los primeros 28 días de registro
purchase_data_filt = purchase_data_filt.rename(columns={'date_x': 'date'})
purchase_data_filt['date'] = pd.to_datetime(purchase_data_filt['date']).dt.date
purchase_data_filt = purchase_data_filt[(purchase_data_filt.date <= purchase_data_filt.reg_date + timedelta(days=28))]
# Precio promedio pagado por compra
print(purchase_data_filt.price.mean())
Precio medio de compra por grupos
import numpy as np
# Datos de compra
purchase_data = purchase_data_filt
# Fecha máxima de registro para que sea un mes antes de la fecha máxima de compra
max_reg_date = current_date - timedelta(days=28)
# Precios del primer mes
month1 = np.where((purchase_data.reg_date < max_reg_date) &
(purchase_data.date < purchase_data.reg_date + timedelta(days=28)),
purchase_data.price,
np.NaN)
# Columna month1 agregado al dataframe datos de compra
purchase_data['month1'] = month1
# Agrupación de los datos por género y dispositivo
purchase_data_upd = purchase_data.groupby(by=['gender', 'device'], as_index=False)
# Crear un resumen de los promedios de los precios del primer mes y los precios en general
purchase_summary = purchase_data_upd.agg(
{'month1': ['mean', 'median'],
'price': ['mean', 'median']})
print(purchase_summary)