PANDAS CON SQL
Vamos a ver lo que es Pandas conectado a SQL.
Para ello vamos a abrir el cuaderno "Pandas con SQL".
Lo que es importar para la base de datos en este momento, que sigue siendo la misma, la de fútbol soccer, y se va hacer una consulta.
Seleccionar de la tabla liga, el nombre de la liga.
Va a decirle a la tabla partidos: los goles como equipo de casa, los goles como equipo de visitante y la fecha de ese partido.
¿De dónde? De un join, es decir, una combinación de tablas de la tabla liga y de la tabla partidos.
¿Con respecto a qué campo? Al campo league_id de match y id de liga.
Estos dos tienen que ser iguales para que se puedan asociar los registros de las dos tablas.
Ahora, se va a utilizarlo con Pandas.
Lo que ha estado haciendo en ese momento es decirle: SQL lite3, crea una conexión y con el cursor ejecuta esta consulta.
Pandas puede hacer todo eso de forma automática, solamente se le dice qué consulta va a ejecutar y cuál es la conexión que va a utilizar para ejecutar la consulta.
Importar Pandas como lo hace normalmente, que es import Pandas as pd, y le dice "Pandas, lee SQL", es decir, va a ejecutar la consulta en una conexión.
Si se tiene un motor de base de datos ya más pesado el cual da consultas de gran nivel simplemente va a reemplazar los datos de la conexión.
Por eso es conveniente utilizar SQL lite porque al final de cuentas con Pandas solamente hay que cambiar eso, y se tiene una conexión lista para producción.
Entonces, lo ejecuta, tarda un poquito en cargar Pandas la primera vez que lo importamos, y ahora sí, ya guardó la consulta en la variable "df".
Al darle la función head y va a imprimir los cinco primeros registros, ya en una forma tabulada en Pandas como esta acostumbrado a verlo, va a decir que hay un nombre de la liga, el número de goles como el equipo de casa y el número de goles como visitante y aparte una fecha.
Entonces ya indica la consulta SQL, ya lo ejecutó y el data frame de Pandas como ya los sabe se puede hacer mil cosas.
Se puede transformarlo como quiera.
Por ejemplo, va a agregar una quinta columna la cual sea la diferencia de goles.
Puede decirle "de df dame los goles como equipo de casa y restarle los goles como visitante y da un valor absoluto de esos dos".
Se guarda, seimprime otra vez los cinco primeros registros, y ahora sí, ya da las diferencias de goles.
Una vez que calculamos la diferencia entre los goles de casa con visitante podemos imprimirlos fácilmente con, otra vez, la función head.
Lo generamos, y podemos ver, por ejemplo, en el primer caso, que fue un partido 1 - 1.
La diferencia de goles es 0.
En el caso del tercero, por ejemplo, fue 0 goles en casa y 3 como visitante, entonces la diferencia de goles es 3.
Entonces, ya estamos haciendo ingeniería de datos, estamos agregando datos a la tabla de una forma sencilla gracias a Pandas, y esto lo podemos manipular a la escala que queramos porque podemos escalarlo a múltiples tablas, a múltiples consultas, múltiples manipulaciones.
Ahora, como tenemos Pandas como nuestro respaldo podemos utilizar los ordenamientos que hemos estado utilizando.
Por ejemplo, vamos a ordenar a través de esta nueva columna que acabamos de generar y vamos a decirle que los ordene de mayor diferencia de goles a menor diferencia de goles.
Entonces, aquí tenemos los partidos.
Por ejemplo, en la liga de Holanda tenemos un partido que fue 10 - 0, una super goliza, en la liga francesa tenemos un 0 - 9 que curiosamente fue como visitantes, tenemos en la liga escocesa un 9 - 0.
Entonces estos son diferentes partidos que pudimos hacer una selección específica gracias a la diferencia de goles que utilizamos o que agregamos.
Además también podemos, como estamos trabajando junto con Pandas, podemos hacer graficaciones.
Vamos a importar matplotlib, que ya hemos estado utilizando, y podemos utilizar además seaborn, que son estilos de gráficas un poquito más estilizadas, y vamos a hacer una gráfica la cual en el eje de las "x" tiene los goles de casa, en el eje de las "y" los de visitante y nuestro conjunto de datos es el data frame.
Entonces, si nosotros lo graficamos, tarda un poquito porque está procesando.
Aquí está.
Hacemos la gráfica y nos da estos valores.
Nos dice dónde está la concentración de los goles en casa, nos da la concentración de los partidos...
de los goles como visitante y nos da la distribución de estos dos ejes que son goles como casa contra visitante.
Se puede ver por las manchitas que tenemos aquí que la mancha más intensa está alrededor del 1 - 1.
Esto nos dice que el resultado más común en los partidos europeos es el 1 - 1, seguido del 1 - 0 donde el equipo de casa anota al menos un gol.
Esta escala se crece hasta acá por los datos que teníamos de golizas, por ejemplo, el 10-0, el 9-0, todo eso se va a hacia los extremos, que son valores muy alejados del grueso de los datos, por lo tanto pues no se alcanzan a percibir.
Pero ahí están, por eso sale la gráfica con estos tamaños.
Este concluye los ejercicios que hemos tenido preparados para ustedes donde hacemos consultas a la base datos, hacemos inserciones, hacemos actualizaciones, incluso eliminamos campos de la base de datos, los pudimos traer a Pandas y pudimos trabajarlos ya en el entorno con el que estamos más familiarizados: con Pandas.
SQL es necesario en el data science porque cuando llegamos a la industria por lo general ahí es donde están las colecciones de datos importantes: en SQL.
Entonces, es importante poder conocer cómo extraer la información de ahí, traerla a nuestro ambiente de trabajo, que es Python, poderlo procesar con Pandas y poder hacer nuestro análisis de datos.
No hay comentarios:
Publicar un comentario