8.3.2 DataFrames

8.3.2 DataFrames

Un DataFrame es una estructura tabular compuesta por series. Se trata del tipo de datos fundamental en pandas y sobre el que giran la mayoría de operaciones que podemos realizar.

8.3.2 DataFrames

Figura 17: Estructura de un DataFrame a partir de Series

Creación de un DataFrame

Existen múltiples formas de crear un DataFrame en pandas. Veamos algunas de ellas.

DataFrame desde diccionario de listas

Cada elemento del diccionario se convierte en una columna, donde su clave es el nombre y sus valores se despliegan en «vertical»:

8.3.2 DataFrames

DataFrame desde lista de diccionarios

Cada elemento de la lista se convierte en una fila. Las claves de cada diccionario serán los nombres de las columnas y sus valores se despliegan en «horizontal»:

8.3.2 DataFrames

DataFrame desde lista de listas

Cada elemento de la lista se convierte en una fila y sus valores se despliegan en «horizontal». Los nombres de las columnas deben pasarse como parámetro opcional:

8.3.2 DataFrames

DataFrame desde series

8.3.2 DataFrames

8.3.2 DataFrames

Ejercicio

Cree el siguiente DataFrame en Pandas:

8.3.2 DataFrames

La superficie (Area) está expresada en km2 y las provincias corresponden con LPGC: Las Palmas de Gran Canaria y SCTF: Santa Cruz de Tenerife.

Importante: Nos referiremos a este DataFrame como democan de ahora en adelante.

Gestión del índice

Cuando creamos un DataFrame, pandas autocompleta el índice con un valor entero autoincremental comenzando desde cero:

8.3.2 DataFrames

Si queremos convertir alguna columna en el índice de la tabla, podemos hacerlo así:

8.3.2 DataFrames

8.3.2 DataFrames

Nota: En el caso anterior se puede observar que el índice toma un nombre A. Esto se puede conseguir directamente asignando un valor a df.index.name.

Podemos añadir un parámetro (en la creación) para especificar los valores que queremos incluir en el índice:

8.3.2 DataFrames

En aquellos DataFrames que disponen de un índice etiquetado, es posible resetearlo:

8.3.2 DataFrames

Ejercicio

Convierta la columna Island en el índice de democan. El DataFrame debería de quedar así:

8.3.2 DataFrames

Lectura de fuentes externas

Lo más habitual cuando se trabaja en ciencia de datos es tener la información en distintas fuentes auxiliares: bases de datos, ficheros, llamadas remotas a APIs, etc. Pandas nos ofrece una variedad enorme de funciones para cargar datos desde, prácticamente, cualquier origen.

Tabla 2: Funciones para lectura de datos en pandas

8.3.2 DataFrames

Nota: Todas estas funciones tienen su equivalente para escribir datos en los distintos formatos. En vez de read_ habría que usar el prefijo to_. Por ejemplo: .to_csv(), .to_json() o .to_sql()

A modo de ilustración, vamos a leer el contenido del fichero tech.csv que contiene la lista de las mayores empresas tecnológicas por ingresos totales (en millones de dólares)2.

Usaremos la función read_csv() que espera la coma como separador de campos. Este fichero está delimitado por tabuladores, por lo que especificaremos esta circunstancia mediante el parámetro delimiter. Igualmente, vamos a indicar que se use la primera columna Company como índice del DataFrame con el parámetro index_col:

8.3.2 DataFrames

Truco: Se suele usar df como nombre para las variables tipo DataFrame.

Ejercicio

Cargue el conjunto de datos democan desde democan.csv en un DataFrame df indicando que la columna Island es el índice.

También es posible cargar el «dataset» a través de la URL que conseguimos con botón derecho: copiar enlace.

Características de un DataFrame

Visualización de los datos

Para «echar un vistazo» a los datos, existen dos funciones muy recurridas:

8.3.2 DataFrames

8.3.2 DataFrames

Truco: Estas funciones admiten como parámetro el número de registros a visualizar.

Información sobre los datos

Pandas ofrece algunas funciones que proporcionan un cierto «resumen» de los datos a nivel descriptivo. Veamos algunas de ellas.

Información sobre columnas:

8.3.2 DataFrames

Descripción de las variables numéricas:

8.3.2 DataFrames

8.3.2 DataFrames

Uso de memoria:

8.3.2 DataFrames

Truco: El resultado de describe() es un DataFrame, mientras que el resultado de memory_usage() es Series. En cualquier caso, ambas estructuras son accesibles normalmente como tipos de datos Pandas.

Atributos de un DataFrame

Tamaños y dimensiones:

8.3.2 DataFrames

Índice, columnas y valores:

8.3.2 DataFrames

8.3.2 DataFrames

Publicaciones Similares