8.3 pandas

8.3 pandas

pandas es un paquete open-source que nos proporciona una forma sencilla y potente de trabajar con estructuras de datos a través de múltiples herramientas para su análisis.

8.3 pandas

La forma más común de importar esta librería es usar el alias pd:

8.3 pandas

Si bien en Numpy la estructura de datos fundamental es el ndarray, en pandas existen dos estructuras de datos sobre las que giran todas las operaciones:

  • Series.
  • Dataframes.
8.3.1 Series

Podríamos pensar en una serie como un ndarray en el que cada valor tiene asignado una etiqueta (índice) y además admite un título (nombre).

Creación de una serie

Veamos varios ejemplos de creación de la serie [1,2, 3].

Creación de series usando listas:

8.3 pandas

Nota: El índice por defecto se crea con números enteros positivos empezando desde 0.

Especificando un índice personalizado (etiqueta a cada valor):

8.3 pandas

Especificando un diccionario con etiquetas y valores:

8.3 pandas

Todas las series que hemos visto hasta ahora no tienen asignado ningún nombre. Lo podemos hacer usando el parámetro name en la creación de la serie:

8.3 pandas

8.3 pandas

Ejercicio

Cree una serie de pandas con valores enteros en el intervalo [1,26] y etiquetas ’ABCDEFGHIJKLMNOPQRSTUVWXYZ’. Busque una manera programática (no manual) de hacerlo (recuerde el módulo string).

Atributos de una serie

Las series en pandas contienen gran cantidad de atributos. A continuación destacaremos algunos de ellos.

Trabajaremos con datos que contienen el número de empleados/as de diferentes empresas tecnológicas:

8.3 pandas

Índice de la serie:

8.3 pandas

Valores de la serie:

8.3 pandas

Tipo de la serie:

8.3 pandas

Nombre de la serie:

8.3 pandas

Memoria ocupada por la serie:

8.3 pandas

Número de registros de la serie:

8.3 pandas

Selección de registros

La selección de los datos se puede realizar desde múltiples aproximaciones. A continuación veremos las posiblidades que nos ofrece pandas para seleccionar/filtrar los registros de una serie.

8.3 pandas

Selección usando indexado numérico

Para acceder a los registros por su posición (índice numérico) basta usar corchetes como ya se ha visto en cualquier secuencia:

8.3 pandas

El atributo iloc es un alias (algo más expresivo) que permite realizar las mismas operaciones de indexado (con corchetes) que hemos visto anteriormente:

8.3 pandas

Truco: Python, y en este caso pandas, se dicen «0-index» porque sus índices (posiciones) comienzan en cero.

Selección usando etiquetas

En el caso de aquellas series que dispongan de un índice con etiquetas, podemos acceder a sus registros utilizando las mismas:

8.3 pandas

8.3 pandas

El atributo loc es un alias (algo más expresivo) que permite realizar las mismas operaciones de indexado (con corchetes) que hemos visto anteriormente:

8.3 pandas

Fragmentos de comienzo y fin

A nivel exploratorio, es bastante cómodo acceder a una porción inicial (o final) de los datos que manejamos. Esto se puede hacer de forma muy sencilla con series:

8.3 pandas

Operaciones con series

Si tenemos en cuenta que una serie contiene valores en formato ndarray podemos concluir que las operaciones sobre arrays son aplicables al caso de las series. Veamos algunos ejemplos de operaciones que podemos aplicar sobre series.

Operaciones lógicas

Supongamos que queremos filtrar aquellas empresas que tengan más de 200000 trabajadores/as:

8.3 pandas

Hemos obtenido una serie «booleana». Si queremos aplicar esta «máscara», podemos hacerlo con indexado:

8.3 pandas

Ordenación

Ordenación de una serie por sus valores:

8.3 pandas

8.3 pandas

Ordenación de una serie por su índice:

8.3 pandas

Truco: Ambos métodos admiten el parámetro ascending para indicar si la ordenación es ascendente (True) o descendente (False); y también admiten el parámetro inplace para indicar si se quiere modificar los valores de la serie (True) o devolver una nueva ya ordenada (False).

Contando valores

Si queremos obtener una «tabla de frecuencias» podemos contar los valores que existen en nuestra serie:

8.3 pandas

Vinculado con el caso anterior, podemos obtener el número de valores únicos en la serie:

8.3 pandas
El método count() devuelve el número de valores «no nulos» que contiene la serie:

8.3 pandas

Operaciones aritméticas

Operaciones entre series y escalares

Podemos operar entre series y escalares sin ningún tipo de problema:

8.3 pandas

Operaciones entre series

Para el caso de operaciones entre series, vamos a ejemplificarlo con las dos siguientes:

8.3 pandas

8.3 pandas

Supongamos que queremos calcular la ratio de ingresos por trabajador/a:

8.3 pandas

Truco: Tener en cuenta que las operaciones se realizan entre registros que tienen el mismo índice (etiqueta).

Funciones estadísticas

Existen multitud de funciones estadísticas que podemos aplicar a una serie. Dependiendo del tipo de dato con el que estamos trabajando, serán más útiles unas que otras. Veamos dos funciones a modo de ejemplo:

8.3 pandas

Máximos y mínimos

El abanico de posibilidades es muy amplio en cuanto a la búsqueda de valores máximos y mínimos en una serie. Veamos lo que nos ofrece pandas a este respecto.

Obtener valor mínimo/máximo de una serie:

8.3 pandas

Posición (índice) del valor mínimo/máximo de una serie:

8.3 pandas

Etiqueta (índice) del valor mínimo/máximo de una serie:

8.3 pandas

Obtener los n valores menores/mayores de una serie:

8.3 pandas

Exportación de series

Suele ser bastante habitual intercambiar datos en distintos formatos (y aplicaciones). Para ello, pandas nos permite exportar una serie a multitud de formatos. Veamos algunos de ellos:

Exportación de serie a lista:

8.3 pandas

Exportación de serie a diccionario:

8.3 pandas

Exportación de serie a csv:

8.3 pandas

Exportación de serie a json:

8.3 pandas

Exportación de serie a pandas.DataFrame

8.3 pandas

Y muchos otros como: to_clipboard(), to_numpy(), to_pickle(), to_string(), to_xarray(), to_excel(), to_hdf(), to_latex(), to_markdown(), to_period(), to_sql() o to_timestamp().

Publicaciones Similares