- Conectarse a una base de datos MySQL usando Python.
- Obtener datos de un SGBD y convertir esos datos a
DataFrames
. - Unir
DataFrames
usando el métodomerge
. - Segmentar nuestros
DataFrames
usandogroupby
. - Aplicar agregaciones y funciones a nuestros grupos.
Introducción
Bienvenido a la última sesión de este módulo. El día de hoy cerraremos con 3 temas que son esenciales para redondear tu educación como procesador de datos:
- Bases de datos, cómo conectarnos a ellas y cómo obtener información de ellas
merge
y cómo unirDataFrames
al estilo de unjoin
de SQLgroupby
y cómo segmentar tusDataFrames
por grupo para aplicar funciones agregadoras a cada grupo
¡A por ella!
Bases de Datos
Como vimos en el Prework, los sistemas de gestión de bases de datos (como MySQL, PostgreSQL, MariaDB, MongoDB, etc) son una gran manera de almacenar grandes (o pequeñas) cantidades de datos y compartirlas con muchas personas.
Normalmente, estas bases de datos van a estar almacenadas en algún servidor al que todos los integrantes de tu equipo van a tener acceso. Vamos a conectarnos a una base de datos remota usando la librería mysql-connector
.
Antes que nada, si no lo has hecho ya, instala la librería desde Google Colab:
!pip install mysql-connector-python
Como alternativa te dejamos este material que te permitirá conectarte a cualquier base de datos.
Tablas a DataFrames
Ya que hemos realizado nuestra conexión, vamos a hacer unas consultas a nuestra base de datos para construir algunos DataFrames
a partir de las tablas que existen en la base movielens
.
Podríamos hacer consultas filtradas a la base de datos cada vez que necesitáramos un subconjunto específico, pero resulta mucho más fácil (sobre todo en este caso en el que nuestro conjunto de datos es pequeño), pedir todos los datos y luego filtrarlos usando pandas
.
Aunque ésta no es una solución apta para todos los casos (en el mundo de la ingeniería de software y la ciencia de datos en realidad rara vez sucede eso), es la que usaremos en esta sesión.
merge
Ok, ahora tenemos una base de datos que consiste de 5 tablas distintas. Dentro de cada una de esas tablas, tenemos información relevante que se relaciona con otras tablas a través de lo que llamamos 'llaves foráneas' ('foreign keys'). Esto quiere decir que si en una tabla tenemos una columna user_id
y en otra tabla también tenemos la columna user_id
, podemos usar ambas columnas para relacionar ambas tablas y construir una nueva tabla que contenga la información de las dos tablas originales.
Usando este proceso, podemos unir DataFrames
y completar información relevante que le falte a una de las tablas pero que podamos encontrar en otra tabla.
groupby
Ya sabemos unir DataFrames
usando concat
y merge
, pero ¿qué pasa cuando lo que queremos es segmentar nuestro DataFrame
? A veces en vez de unir todos los datos en la misma estructura lo que queremos es dividirlos para facilitar su comprensión, análisis y visualización.
Para esto podemos utilizar el método groupby
, que nos permite agrupar nuestros datos por categorías y luego aplicar funciones agregadoras a cada grupo.
Ahora sí viene lo bueno. Los siguientes 3 Retos serán exploraciones mucho más profundas de todo lo que hemos visto el día de hoy y en sesiones anteriores. Si los encuentras muy difíciles, recuerda que siempre puedes compartir tus dudas con tus compañeros y con la experta. ¡Mucha suerte!