Curso de introducción a la programación con Python

Autor: Luis Fernando Apáez Álvarez

Clase 2: DataFrames (parte II)

Accediendo a datos de un DataFrame

Recordemos de la clase pasada el DataFrame...

y podemos ver el tipo de dato que es d1

que indica justamente que d1 es un DataFrame del módulo Pandas.

Podemos acceder a los valores de una columna, por ejemplo de la columna Capital, escribiendo

lo cual nos muestra los valores de la columna capital, los valores del índice general de nuestro DataFrame y al final nos da el nombre de la columna y el tipo. Vayamos un poco más allá y averiguemos sobre el tipo de d1['Capital'], veamos que

lo cual nos arroja que d1['Capital'] es una serie en Pandas, donde una serie puede pensarse como una matriz unidimensional que puede etiquetarse, al igual que un DataFrame. De tal manera, si "juntamos" varias series podremos crear un DataFrame. En resumen, accediendo a los valores de una columna usando corchetes en la sintaxis obtenemos como resultado una serie.

Por otro lado, podemos acceder a los valores de la columna utilizando doble corchete

lo cual mantendra la naturaleza de DataFrame, es decir que d1[['Capital']] continúa siendo un DataFrame (y no es, en este caso, una serie). En efecto

Utilizando la misma idea podemos acceder a los valores de una fila, por ejemplo obtengamos los valores de la fila 0

y notemos que en este caso el resultado continúa siendo un DataFrame

Accediendo a los valores de filas y columnas de un DataFrame usando corchetes representa una funcionalidad muy limitada. Recordemos de la versatilidad en los arreglos de dos dimensiones en NumPy, siendo así que busquemos algo parecido en el manejo de los DataFrames.

Funciones loc e iloc

Para conseguir mayor versatilidad a la hora de acceder a los datos de un DataFrame utilizaremos las funciones loc e iloc. La función loc (label-based) usa una técnica para seleccionar parte de sus datos en función de etiquetas; la función iloc (integer position-based) se basa en la posición.

Veamos por ejemplo el acceso a los valores de la fila Rusia utilizando la función loc

lo cual nos arroja nuevamente una serie Pandas con la información un tanto en forma incoveniente. Podemos mejorar lo anterior utilizando doble corchete

Podemos acceder a valores de más filas

Hasta el momento lo anterior no representa algo nuevo respecto al manejo de corchetes para acceder a los datos de un DataFrame, sin embargo, con la función loc podemos acceder además a valores especificos de una columna, es decir, podemos acceder por ejemplo a la fila BR y obtener sólo el valor correspondiente a la columna Capital escribiendo

o por ejemplo

de modo que los primeros corchetes hacen referencia a valores de las filas y los segundos a valores de las columnas. Además podemos acceder a varias filas utilizando nuevamente intervalos, combinando con lo visto anteriormente

Ahora bien, con la función loc conseguimos gran versatilidad a la hora de acceder a los datos de un DataFrame mediante una búsqueda basada en las etiquetas, luego, mediante iloc conseguiremos lo mismo cambiando de una búsqueda por etiquetas a una búsqueda por posiciones. Abordemos los mismos ejemplo usados para la función loc con la función iloc

Socialmedia.PNG