Fases del análisis de datos usando Python: Comparaciones

Fases del análisis de datos usando Python: Comparaciones

Veremos la última fase del análisis de datos: comparaciones entre variables. Habiendo clasificado nuestras variables, podemos realizar comparaciones.

Librerías que vamos a utilizar:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

Leemos los datos generados en el paso 3:

vehiculos = pd.read_pickle("vehiculospaso3.pkl")

Análisis de datos: comparaciones

Recuento por múltiples grupos y mapas de calor

Vamos a crear una función que nos hace un recuento entre dos variables:

def pivot_recuento(df, rows, columns, calc_field):
    df_pivot = df.pivot_table(values=calc_field, 
                              index=rows, 
                              columns=columns, 
                              aggfunc=np.size
                             ).dropna(axis=0, how='all')
    return df_pivot

La puedes usar directamente, pasandole qué quieres ver como filas, qué como columnas.

Pero la utilizaremos para crear un heatmap o mapa de calor.

def heatmap_recuento_tipos(df, col1, col2):
    pivot_table = pivot_recuento(df,col1, col2, "year")
    sns.heatmap(pivot_table, annot=True, fmt='g')
    plt.ylabel(col1)
    plt.xlabel(col2)
    plt.show()

Entonces podremos crear un gráfico que nos compare, por ejemplo, “clase_tipo” (si son camionetas, coches pequeños, etc), con “consumo_tipo” (si usa combustible normal, premium, híbrido, etc).

heatmap_recuento_tipos(vehiculos, "clase_tipo", "combustible_tipo")

Lo que nos muestra:

analisis de datos comparaciones - mapa de calor

De esta forma podemos observar que hay una gran cantidad de coches pequeños que utilizan gasolina normal (6619).

Utilizando ésta herramienta podemos comparar cualquiera de nuestras variables categóricas.

Medias por variables categóricas

La siguiente función nos permite realizar comparaciones entre dos variables pero analizando la media.

def medias_por_categoria(col_grupo, col_calculo):
    vehiculos.groupby(col_grupo)[col_calculo].mean().plot.barh()
    plt.ylabel(col_grupo)
    plt.xlabel('Valores medios de {}'.format(col_calculo))
    plt.show()

columnas_numericas = vehiculos.select_dtypes(['int', 'float']).columns
columnas_categoricas = vehiculos.select_dtypes(['object', 'category']).columns
columnas_tipo = [col for col in vehiculos.columns if col.endswith("_tipo")]

Por ejemplo si queremos analizar el consumo de combustible comparado con la clase de vehículo, podemos indicárselo así:

medias_por_categoria('clase_tipo', "consumo_litros_milla")

Lo que nos arroja:

analisis de datos comparaciones - medias

Donde podemos apreciar que las furgonetas consumen más litros por milla (en promedio) que las camionetas. O que los coches grandes consumen más que los coches familares.

Medias por múltiples tipos

La siguiente función nos permite comparar tres variables, por ejemplo, tal vez deseemos ver el co2 emitido por los diferentes tipos de carros considerando sus diferentes tipos de combustible.

def pivot_media(rows, columns, calc_field):
    df_pivot = vehiculos.pivot_table(values=calc_field, 
                              index=rows, 
                              columns=columns, 
                              aggfunc=np.mean
                             ).dropna(axis=0, how='all')
    return df_pivot

Creamos un mapa de calor:

def heatmap_medias_tipos(col1, col2, col3):
    pivot_table = pivot_media(col1, col2, col3)
    sns.heatmap(pivot_table, annot=True, fmt='g')
    plt.ylabel(col1)
    plt.xlabel(col2)
    plt.show()

Y probamos el ejemplo que mencionamos hace un momento:

heatmap_medias_tipos("clase_tipo", "combustible_tipo", "co2")

Los que nos muestra:

analisis de datos comparaciones - medias multiples tipos

Un dato que se puede apreciar en los coches pequeños es que los que usan Premiun emiten más co2 que los que usan combustible normal.

Éstas son solo algunas técnicas que se pueden utilizar para comparar variables, pero como te puedes dar cuenta, un análisis más extenso de las diferentes combinaciones entre variables nos puede arrojar mucha más información.

¿Qué te pareció este artículo?
  • Poco informativo 
  • No era lo que buscaba 
  • Regular 
  • Interesante 
  • Excelente 
(Visto 2.125 veces)
Facebooktwitterlinkedinmail

Tu comentario

opiniones

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *







9 + 1 =