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.
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»:
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»:
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:
DataFrame desde series
Ejercicio
Cree el siguiente DataFrame en Pandas:
La superficie (Area) está expresada en km2 y las provincias corresponden con LPGC: Las Palmas de Gran Canaria y SCTF: Santa Cruz de Tenerife.
Gestión del índice
Cuando creamos un DataFrame, pandas autocompleta el índice con un valor entero autoincremental comenzando desde cero:
Si queremos convertir alguna columna en el índice de la tabla, podemos hacerlo así:
Podemos añadir un parámetro (en la creación) para especificar los valores que queremos incluir en el índice:
En aquellos DataFrames que disponen de un índice etiquetado, es posible resetearlo:
Ejercicio
Convierta la columna Island en el índice de democan. El DataFrame debería de quedar así:
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
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:
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:
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:
Descripción de las variables numéricas:
Uso de memoria:
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:
Índice, columnas y valores: