Usando funciones estadísticas
Vamos a aplicar las funciones estadísticas que proporciona pandas sobre la columna Revenue de nuestro «dataset», aunque podríamos hacerlo sobre todas aquellas variables numéricas susceptibles:
Tabla 3 – proviene de la página anterior
Ejercicio
Partiendo del conjunto de datos democan, obtenga aquellas islas cuya población está por encima de la media del archipiélago canario.
Resultado esperado: [‘Gran Canaria’, ‘Tenerife’]
Ordenando valores
Una operación muy típica cuando trabajamos con datos es la de ordenarlos en base a ciertos criterios. Veamos cómo podemos hacerlo utilizando pandas. Volvemos a nuestro «dataset» tecnológico:
Supongamos que queremos tener el conjunto de datos ordenado por el nombre de empresa. Como, en este caso, la columna Company constituye el índice, debemos ordenar por el índice:
Ahora imaginemos que necesitamos tener las empresas ordenadas de mayor a menor número de ingresos:
También es posible utilizar varias columnas en la ordenación. Pongamos que deseamos ordenar los datos por país y por ciudad. Veamos cómo afrontarlo:Python
Buscando máximos y mínimos
Al igual que veíamos en el caso de las series, podemos aplicar muchas de estas funciones de máximos y mínimos sobre un DataFrame de Pandas.
Podemos obtener los valores mínimos y máximos de todas las columnas:
También podría ser de utilidad saber qué empresa tiene el valor mínimo o máximo para una determinada columna:
Si queremos acceder al registro completo, basta con acceder a través de la etiqueta devuelta:
Otra de las operaciones muy usuales es encontrar los n registros con mayores/menores valores. Supongamos que nos interesa conocer las 3 empresas con mayores ingresos y las 3 empresas con menor número de empleados/as:
Si queremos acceder al registro completo, podemos aplicar estas funciones de otro modo:
Ejercicio
Partiendo del conjunto de datos democan obtenga las 3 islas con menor densidad de población. El resultado debería ser el siguiente:
Gestionando valores nulos
La limpieza de un «dataset» suele estar vinculado, en muchas ocasiones, a la gestión de los valores nulos. En este sentido, pandas ofrece varias funciones.
Para ejemplificar este apartado, vamos a hacer uso del siguiente DataFrame:
Si queremos detectar aquellos valores nulos, haremos lo siguiente:
Nota: También existe la función isnull() que funciona de manera análoga a isna(). En StackExchange puedes ver una explicación de estas funciones.
En caso de que nos interese descartar los registros con valores nulos, procedemos así:
Sin embargo, también existe la posiblidad de rellenar los valores nulos con algún sustituto. En este caso podemos ejecutar lo siguiente:
Incluso podemos aplicar interpolación para completar valores nulos:
Reformando datos
En esta sección se verán las operaciones de pivotar y apilar que permiten reformar (remodelar) un DataFrame.
Seguimos utilizando el conjunto de datos de empresas tecnológicas aunque nos quedaremos únicamente con las 3 primeras filas a efectos didácticos:
Ancho y Largo
Típicamente existen dos maneras de presentar datos tabulares: formato ancho y formato largo. En formato ancho cada fila tiene múltiples columnas representando todas las variables de una misma observación. En formato largo cada fila tiene básicamente tres columnas: una que identifica la observación, otra que identifica la variable y otra que contiene el valor.Python
Para pasar de formato ancho a formato largo usamos la función melt():
Para pasar de formato largo a formato ancho usamos la función pivot():
Truco: Nótese que las columnas tienen un nombre variable que se puede modificar mediante columns.name.
Si queremos obtener el DataFrame en formato ancho, tal y como estaba, tenemos que realizar alguna operación adicional: df.rename_axis(columns = None).reset_index().