12. La librería Pandas

12. La librería Pandas

Pandas es una librería de Python especializada en el manejo y análisis de estructuras de datos.

Logo librería Pandas

Las principales características de esta librería son:

  • Define nuevas estructuras de datos basadas en los arrays de la librería NumPy pero con nuevas funcionalidades.
  • Permite leer y escribir fácilmente ficheros en formato CSV, Excel y bases de datos SQL.
  • Permite acceder a los datos mediante índices o nombres para filas y columnas.
  • Ofrece métodos para reordenar, dividir y combinar conjuntos de datos.
  • Permite trabajar con series temporales.
  • Realiza todas estas operaciones de manera muy eficiente.
12.1 Tipos de datos de Pandas

Pandas dispone de tres estructuras de datos diferentes:

  • Series: Estructura de una dimensión.
  • DataFrame: Estructura de dos dimensiones (tablas).
  • Panel: Estructura de tres dimensiones (cubos).

Estas estructuras se construyen a partir de arrays de la librería NumPy, añadiendo nuevas funcionali­dades.

12.2 La clase de objetos Series

Son estructuras similares a los arrays de una dimensión. Son homogéneas, es decir, sus elementos tienen que ser del mismo tipo, y su tamaño es inmutable, es decir, no se puede cambiar, aunque si su contenido.

Dispone de un índice que asocia un nombre a cada elemento del la serie, a través de la cuál se accede al elemento.

Ejemplo. La siguiente serie contiene las asignaturas de un curso.

Python

Ejemplo de serie

12.3 Creación de una serie a partir de una lista
  • Series(data=lista, index=indices, dtype=tipo) : Devuelve un objeto de tipo Series con los datos de la lista lista, las filas especificados en la lista indices y el tipo de datos indicado en tipo. Si no se pasa la lista de índices se utilizan como índices los enteros del 0 al n — 1, done n es el tamaño de la serie. Si no se pasa el tipo de dato se infiere.

12. La librería Pandas

12.4 Creación de una serie a partir de un diccionario
  • Series (data=diccionario, index=indices): Devuelve un objeto de tipo Series con los valores del diccionario diccionario y las filas especificados en la lista indices. Si no se pasa la lista de índices se utilizan como índices las claves del diccionario.

12. La librería Pandas

12.5 Atributos de una serie

Existen varias propiedades o métodos para ver las características de una serie.

  • s.size : Devuelve el número de elementos de la serie s.
  • s.index : Devuelve una lista con los nombres de las filas del DataFrame s.
  • s.dtype : Devuelve el tipo de datos de los elementos de la serie s.

12. La librería Pandas

12.6 Acceso a los elementos de una serie

El acceso a los elementos de un objeto del tipo Series puede ser a través de posiciones o través de índices (nombres).

12.6.1 Acceso por posición

Se realiza de forma similar a como se accede a los elementos de un array.

  • s[i] : Devuelve el elemento que ocupa la posición i+1 en la serie s.
  • s[nombres]: Devuelve otra serie con los elementos con los nombres de la lista nombres en el índice.
12.6.2 Acceso por índice
  • s[nombre] : Devuelve el elemento con el nombre nombre en el índice.
  • s[nombres] : Devuelve otra serie con los elementos correspondientes a los nombres indicadas en la lista nombres en el índice.

12. La librería Pandas

12.7 Resumen descriptivo de una serie

Las siguientes funciones permiten resumir varios aspectos de una serie:

  • s.count() : Devuelve el número de elementos que no son nulos ni NaN en la serie s.
  • s.sum () : Devuelve la suma de los datos de la serie s cuando los datos son de un tipo numérico, o la concatenación de ellos cuando son del tipo cadena str.
  • s.cumsum() : Devuelve una serie con la suma acumulada de los datos de la serie s cuando los datos son de un tipo numérico.
  • s.value_counts() : Devuelve una serie con la frecuencia (número de repeticiones) de cada valor de la serie s.
  • s.min() : Devuelve el menor de los datos de la serie s.
  • s.max () : Devuelve el mayor de los datos de la serie s.
  • s.mean() : Devuelve la media de los datos de la serie s cuando los datos son de un tipo numé­rico.
  • s.std() : Devuelve la desviación típica de los datos de la serie s cuando los datos son de un tipo numérico.
  • s.describe(): Devuelve una serie con un resumen descriptivo que incluye el número de da­tos, su suma, el mínimo, el máximo, la media, la desviación típica y los cuartiles.

12. La librería Pandas

12. La librería Pandas

12.8 Aplicar operaciones a una serie

Los operadores binarios (+, *, /, etc.) pueden utilizarse con una serie, y devuelven otra serie con el resultado de aplicar la operación a cada elemento de la serie.

12. La librería Pandas

12.9 Aplicar funciones a una serie

También es posible aplicar una función a cada elemento de la serie mediante el siguiente método:

Python

  • s.apply(f) : Devuelve una serie con el resultado de aplicar la función f a cada uno de los elementos de la serie s.

12. La librería Pandas

12.10 Filtrado de una serie

Para filtrar una serie y quedarse con los valores que cumplen una determinada condición se utiliza el siguiente método:

  • s[condicion] : Devuelve una serie con los elementos de la serie s que se corresponden con el valor True de la lista booleana condición. condición debe ser una lista de valores booleanos de la misma longitud que la serie.

12. La librería Pandas

12.11 Ordenar una serie

Para ordenar una serie se utilizan los siguientes métodos:

  • s.sort_values(ascending=booleano) : Devuelve la serie que resulta de ordenar los valo­res la serie s. Si argumento del parámetro ascending es True el orden es creciente y si es False decreciente.
  • df.sort_index(ascending=booleano): Devuelve la serie que resulta de ordenar el índice de la serie s. Si el argumento del parámetro ascending es True el orden es creciente y si es False decreciente.

12. La librería Pandas

12.12 Eliminar los dados desconocidos en una serie

Los datos desconocidos representan en Pandas por NaN y los nulos por None. Tanto unos como otros suelen ser un problema a la hora de realizar algunos análisis de datos, por lo que es habitual eliminar­los. Para eliminarlos de una serie se utiliza el siguiente método:

  • s.dropna () : Elimina los datos desconocidos o nulos de la serie s.

12. La librería Pandas

12.13 La clase de objetos DataFrame

Un objeto del tipo DataFrame define un conjunto de datos estructurado en forma de tabla donde cada columna es un objeto de tipo Series, es decir, todos los datos de una misma columna son del mismo tipo, y las filas son registros que pueden contender datos de distintos tipos.

Un DataFrame contiene dos índices, uno para las filas y otro para las columnas, y se puede acceder a sus elementos mediante los nombres de las filas y las columnas.

Python

Ejemplo. El siguiente DataFrame contiene información sobre los alumnos de un curso. Cada fila co­rresponde a un alumno y cada columna a una variable.

Ejemplo de DataFrame

12.14 Creación de un DataFrame a partir de un diccionario de listas

Para crear un DataFrame a partir de un diccionario cuyas claves son los nombres de las columnas y los valores son listas con los datos de las columnas se utiliza el método:

  • DataFrame(data=diccionario, index=filas, columns=columnas, dtype=tipos)

: Devuelve un objeto del tipo DataFrame cuyas columnas son las listas contenidas en los valores del diccionario diccionario, los nombres de filas indicados en la lista filas, los nombres de columnas indicados en la lista columnas y los tipos indicados en la lista tipos. La lista filas tiene que tener el mismo tamaño que las listas del diccionario, mientras que las listas columnas y tipos tienen que tener el mismo tamaño que el diccionario. Si no se pasa la lista de filas se utilizan como nombres los enteros empezando en 0. Si no se pasa la lista de columnas se utilizan como nombres las claves del diccionario. Si no se pasa la lista de tipos, se infiere.Python

Los valores asociados a las claves del diccionario deben ser listas del mismo tamaño.

12. La librería Pandas

12.15 Creación de un DataFrame a partir de una lista de listas

Para crear un DataFrame a partir de una lista de listas con los datos de las columnas se utiliza el si­guiente método:

  • DataFrame(data=listas, index=filas, columns=columnas, dtype=tipos) : De­vuelve un objeto del tipo DataFrame cuyas columnas son los valores de las listas de la lista listas, los nombres de filas indicados en la lista filas, los nombres de columnas indicados en la lista columnas y los tipos indicados en la lista tipos. La lista filas, tiene que tener el mismo tamaño que la lista listas mientras que las listas columnas y tipos tienen que tener el mismo tamaño que las listas anidadas en listas. Si no se pasa la lista de filas o de columnas se utilizan enteros empezando en 0. Si no se pasa la lista de tipos, se infiere.

Si las listas anidadas en listas no tienen el mismo tamaño, las listas menores se rellenan con valores NaN.

12. La librería Pandas

Publicaciones Similares