Bases de datos relacionales con Pandas

Introducción

Las tablas de datos son una forma común de almacenar información en bases de datos relacionales. En este cuaderno, aprenderemos a usar la biblioteca Pandas para trabajar con tablas de datos en Python.

Matemáticamente, se puede ver una tabla de datos como un conjunto de tuplas, donde cada tupla es un vector de datos. En este sentido, una tabla de datos es un conjunto de vectores de datos que comparten el mismo dominio. Por ejemplo, la siguiente tabla de datos tiene 3 vectores de datos:

NombreEdadSexo
Juan25M
María30F
Pedro28M

Desde un punto de vista matemático, esta tabla puede ser vista como un conjunto de 3 elementos, donde cada elemento es una terna ordenada:

$$ \{ (\text{Juan}, 25, M), (\text{María}, 30, F), (\text{Pedro}, 28, M) \}. $$

Este es un subconjunto del producto cartesiano de los conjuntos de nombres, edades y sexos, es decir, es una relación ternaria.

Así, de manera general, una tabla de datos ($R$) es una relación entre conjuntos de datos ($A_1,\ldots,A_n$), es decir, $R\subseteq A_1\times\ldots\times A_n$. A cada columna de la tabla ($A_1,\ldots,A_n$) se le llama atributo; y a cada fila (elemento de $R$) se le llama registro y a cada componente de un registro se lo llama campo.

Para trabajar con tablas de datos en Python, se puede utilizar la librería pandas; es usual importarla con el alias pd. Adicionalmente, usaremos la librería numpy para trabajar con arreglos (tuplas) de datos.

Iniciaremos creando la tabla de datos anterior con Pandas, esto se lo puede realizar de varias formas. La primera forma, que es menos común, es mediante una arreglo datos de numpy, esta refleja la estructura matemática de una tabla de datos. Primero definimos el arreglo de datos y luego creamos la tabla de datos con Pandas, usando la función pd.DataFrame. Para una mejor visualización, usaremos la función display de la librería IPython.display.

Deja una respuesta

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