| import numpy as np
|
|
|
| def trans_data_set(df):
|
|
|
|
|
| conditions_edad=[
|
| df["edad"]<=25,
|
| (df["edad"]>25) & (df["edad"]<=40),
|
| (df["edad"]>40) & (df["edad"]<=55),
|
| df["edad"]>55
|
| ]
|
|
|
| choices_edad=[2,3,4,2]
|
| df["edad_cat"]=np.select(conditions_edad, choices_edad)
|
|
|
| conditions_frecuencia_visitas=[
|
| df["frecuencia_visitas_mensual"]<=8,
|
| (df["frecuencia_visitas_mensual"]>8) & (df["frecuencia_visitas_mensual"]<=15),
|
| df["frecuencia_visitas_mensual"]>15
|
| ]
|
| choices_frecuencia_visitas=[2,3,4]
|
|
|
| df["frecuencia_visitas_cat"]=np.select(conditions_frecuencia_visitas, choices_frecuencia_visitas)
|
|
|
| conditions_antiguedad=[
|
| df["antig眉edad_meses"]<=6,
|
| (df["antig眉edad_meses"]>6) & (df["antig眉edad_meses"]<=12),
|
| (df["antig眉edad_meses"]>12) & (df["antig眉edad_meses"]<=24),
|
| (df["antig眉edad_meses"]>24) & (df["antig眉edad_meses"]<=36),
|
| df["antig眉edad_meses"]>36
|
| ]
|
| choices_antiguedad=[1,2,3,4,5]
|
| df["antiguedad_cat"]=np.select(conditions_antiguedad, choices_antiguedad)
|
|
|
| conditions_pago_automatico=[
|
| df["pago_automatico"]==0,
|
| df["pago_automatico"]==1
|
| ]
|
| choices_pago_automatico=[2,4]
|
| df["pago_automatico_cat"]=np.select(conditions_pago_automatico, choices_pago_automatico)
|
|
|
| conditions_queja_reciente=[
|
| df["queja_reciente"]==0,
|
| df["queja_reciente"]==1
|
| ]
|
| choices_queja_reciente=[4,2]
|
| df["queja_reciente_cat"]=np.select(conditions_queja_reciente, choices_queja_reciente)
|
|
|
| riesgo_insatisfacci贸n=df["limpieza_instalaciones"]+df["calidad_equipos"]+df["equipos_disponibles"]+df["dispo_instructores"]+df["precio_percibido"]
|
| riesgo_comportamiento=df["frecuencia_visitas_cat"]+df["edad_cat"]+df["pago_automatico_cat"]+df["queja_reciente_cat"]
|
| avg_riesgo_insatisfacci贸n=riesgo_insatisfacci贸n/5
|
| avg_riesgo_insatisfacci贸n_invertido = 6 - avg_riesgo_insatisfacci贸n
|
| avg_riesgo_comportamiento=riesgo_comportamiento/4
|
|
|
| riesgo_ponderado=(0.6*avg_riesgo_insatisfacci贸n_invertido)+(0.4*avg_riesgo_comportamiento)
|
|
|
| df["risk"]=riesgo_ponderado
|
| df["churn"] = np.where(riesgo_ponderado > 3.5, 1, 0)
|
|
|
|
|
| df['genero'] = np.where(df['genero'] == 'F', 1, 0)
|
|
|
| return df
|
|
|