Python Pandas – I

Pandas

Instalación

En este corto tutorial acerca de Pandas, la librería de Python. Primero, será necesario instalar el módulo mediante pip.

pip install pandas

Pandas sirve para procesar conjuntos de datos con un formato específico. Donde el tipo de datos puede variar en cada una de las columnas. Pandas es utiliza como una herramienta para analizar y procesar datos a gran escala.

Conjunto de datos o Dataset

Siempre que trabajemos con Pandas será necesario utilizar un dataset. En este caso utilizaremos el conjunto de datos de superhéroes. Este dataset contiene la información general (nombre, género, raza, color de ojos, estatura, editorial, etc ) de cada superhéroe.

Instrucciones básicas

Ahora, escribiremos nuestro algunas instrucciones para procesar el archivo. Primero, procedemos a cargar el módulo de Pandas

import pandas as pd

Comenzamos cargando el conjunto de datos en memoria, mediante la instrucción read_csv

superheroes = pd.read_csv(  ‘heroes_information.csv’ , encoding= ‘utf-8’ )

Existen otros encoding como «latin-1», «ISO-8859-1», entre otros.

Por defecto, la primera fila del conjunto de datos corresponde/contiene a los nombres de las columnas.

Para mostrar los datos, simplemente utiliza un print de la variable que contiene el conjunto de datos.

print( superheroes )

 

¿Qué vemos en la salida?

 

Además, podemos tener una vista previa de los datos con las instrucciones head tail.

print( superheroes.head() )

Con head (tail) tendrá una vista previa de lo que te puedes encontrar en el conjunto de datos en las cinco primeras (últimas) filas.

Tanto head como tail permite mostrar más de las 5 filas predeterminadas, para esto podrás enviar un número como parámetro.

print( superheroes.tail(15) )

Con la línea anterior podrás ver los últimos 15 superhéroes en el conjunto de datos.

Para conocer la cantidad de filas y contiene mi conjunto de datos, utilizaremos la instrucción shape que devuelve una tupla con la cantidad de filas y columnas.

nfilas, ncolumnas = superheroes.shape
print( ‘Cantidad de superhérores: ‘ , nfilas)

 

¿Cuántas filas y cuántas columnas tiene nuestro conjunto de datos? 

 

Si necesitamos conocer el nombre de las columnas utilizaremos la instrucción:

nombreColumnas = superheroes.columns.values
print( ‘Nombres de las columnas:’ , nombreColumnas )

Para referirnos a una columna específica utilizamos su nombre, por ejemplo:

print(superheroes[‘Publisher’])

Y si necesitáramos saber una lista con valores únicos de Publisher, simplemente hacemos lo siguiente:

print(list(set(superheroes[‘Publisher’])))

Como te puedes dar cuenta, existen editoriales como ‘Marvel Comics’, ‘DC Comics’ y nan. ¿Qué es nan? Pandas utiliza este tipo de dato para representar los vacíos en el conjunto de datos.

Condicionales

A veces, es necesario contar el número de elementos que cumplen con una determinada condición, por ejemplo: ¿Cuántos superhéroes son de DC Comics?

Para resolver esta pregunta, se recurre a:

  1. Filtra la columna a contar, en este caso Publisher

    columna = superheroes[‘Publisher’]

  2. Crear la condición
    condicion = columna == ‘DC Comics’
  3. Aplicar la condición sobre la columna y contar
    print( columna[condicion].count() )
  4. Deben resultar en 215 superhéroes.

Más preguntas para practicar:

  • ¿Cuántos superhéroes buenos existen? Utiliza la columna Alignment y el valor para es good.
  • ¿Cuántos superhéroes tienen piel blanca? Utiliza la columna Skin color y el valor es white.
  • ¿Cuántos superhéroes tienen los ojos amarillos? Utiliza la columna Eye color y el valor es yellow.

Condicionales complejas

Para unir dos o más condiciones utiliza:

  • Cada condición entre paréntesis, y
  • Los conectores & (para conjunción – and) u | (para disyunción – or)

Por ejemplo, para la pregunta: ¿Cuáles son los nombres de los superhéroes humanos que son neutrales ?

  1. Selecciona la columna name
    columnaNombres = superheroes[‘name’]
  2. Selecciona la columna Race
    columnaRaza = superheroes[‘Race’]
  3. Selecciona la columna Alignment
    columnaAlineacion = superheroes[‘Alignment’]
  4. Crea la condición
    condicion = (columnaRaza == ‘Human’) & (columnaAlineacion == ‘neutral’ )
  5. Filtra la columna name con la condición
    print( columnaNombres[condicion] )

Operaciones básicas

Desde luego, Pandas tiene un conjunto de operaciones básicas, como: sum, max, min, idxmax, idxmin, mean, para responder a preguntas como:

¿Cuál es el nombre, editorial y peso del superhéroe más pesado?

  1. Obtén el valor del peso más grande
    pesoMax = superheroes[‘Weight’].max()
  2. Crea la condición con el valor obtenido.
    condicion = superheroes[‘Weight’] == pesoMax
  3. Obtén la fila con el índice obtenido
    superHeroeMasPesado = superheroes[condicion]
  4. Muestra las características
    print(superHeroeMasPesado[‘name’],superHeroeMasPesado[‘Publisher’], pesoMax )
  5. Debería mostrar esta información
    Sasquatch Marvel Comics 900.0

Acá encontrarás más detalles de otras operaciones básicas.

Para los siguientes casos deberás considerar que el valor de la estatura/peso no se conoce por lo que han colocado el valor de -99.

  • ¿Cuál es el nombre del alien bueno de menor estatura? columnas: name, Alignment (‘good’)Race (‘Alien’) y  Height.
  • ¿Cuál es la estatura promedio de los mutantes? columnas: Race (‘Mutant’) y  Height.
  • ¿Cuántos buenos se encuentran en las editoriales ‘HarperCollins’ y ‘George Lucas’? columnas: Alignment (‘good’) Publisher (‘HarperCollins’ – ‘George Lucas’)
Esta entrada fue publicada en pandas, python y etiquetada , . Guarda el enlace permanente.

Deja un comentario

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