Primeros pasos con Pandas DataFrames

Una de las librerías con mayor importancia al trabajar con el lenguaje de programación Python sin duda alguna es Pandas. Esta herramienta de trabajo es un componente fundamental para iniciar un proyecto enfocado en Data Science.

Este artículo presenta una introducción al manejo de esta librería y su empleabilidad durante el proceso de creación de datos al trabajar con DataFrames.

Introducción a Pandas

Este paquete es de código abierto y al momento de escribir este artículo se encuentra en su versión 1.1.5 (diciembre 2020), soportada en la versión de Python 3.6.1 y superiores.

Una de las mejores formas de resumir el trabajo que realiza Pandas, se puede entender en la siguiente cita:

“When working with tabular data, such as data stored in spreadsheets or databases, pandas is the right tool for you. Pandas will help you to explore, clean and process your data. In pandas, a data table is called a DataFrame (McKinney & Team, 2015).”

En este sentido, Pandas nos brinda una similitud al trabajo que realizamos con hojas de cálculo en Excel o tablas, dentro de una base de datos; al manipular filas y columnas para la exploración, limpieza y análisis de datos.

Instalación y dependencias:

Para la instalación de Pandas se dispone de las siguientes opciones:

Anaconda o Miniconda:
conda install pandas
The Python Package Index:
pip install pandas

Las dependencias necesarias para la versión 1.1.5 de Pandas son:

PaqueteVersión mínima soportada
setuptools24.2.0
NumPy1.15.4
python-dateutil2.7.3
pytz2017.1

Una consideración importante es que al trabajar sobre NumPy se hereda su alta optimización y velocidad en compilación de código.

Series y Dataframes de Pandas

Una Serie de Pandas es un arreglo en una dimensión, por lo cual su representación visual sería semejante a una columna. Mientras que, un DataFrame de Pandas comprende una estructura en dos dimensiones, similar a una matriz con filas y columnas.

Adicionalmente, al trabajar con ambos objetos de Pandas se puede especificar los nombres de los índices para las filas y los nombres de las columnas; aspectos que facilitan la manipulación de datos.

A continuación, se muestra un ejemplo de un DataFrame de Pandas con datos recuperados de data.world:

Año lanzamientopuntaje usuarios
Prison Break200898
Breaking Bad201397
The Walking Dead201598
Sherlock201695
Recuperado de: data.world (2017)

A partir de la tabla de ejemplo, podemos identificar los siguientes componentes dentro del DataFrame de Pandas:

  • Nombres de los índices: títulos de los shows en Netflix
  • Nombres de las columnas: año lanzamiento y puntaje usuarios
  • Filas: cada fila representa un show
  • Columnas: variables que describen las características de los shows

Es importante considerar que los nombres de los índices son valores únicos, lo que garantiza que no puedan existir dos índices con el mismo nombre. Adicionalmente, cada columna dentro del DataFrame representaría por sí sola una Serie de Pandas.

Ahora que conocemos la estructura de los objetos en Pandas procedemos a la creación de DataFrames.

Formas para crear un DataFrame de Pandas

Posterior a la instalación, se requiere realizar la importación mediante la siguiente sintaxis, empleando el alias respectivo para Pandas:

import pandas as pd

En los siguientes bloques de código se replicará el DataFrame con la información de los shows de Netflix presentada anteriormente. Se requiere un conocimiento introductorio sobre los tipos de objetos en Python para una mejor comprensión de la siguiente sección.

Para la creación de DataFrames se emplea el constructor pd.DataFrame:

  • Primera forma: Empleando una lista de listas
# declarar en una variable una lista con los nombres de las columnas
col_nombres = ['año lanzamiento', 'puntaje usuarios']

# declarar en una variable una lista con los nombres de los índices
idx_nombres = ['Prison Break', 'Breaking Bad', 'The Walking Dead', 'Sherlock']

# declarar en una variable una lista de listas
datos = [['2018', 98], ['2013', 97], ['2015', 98], ['2016', 95]] 

# crear el DataFrame de pandas
df = pd.DataFrame(datos, columns = col_nombres, index = idx_nombres) 
  
# imprimir en consola el DataFrame 
print(df) 
  • Segunda forma: Empleando un diccionario de listas
  • Donde las claves son los nombres de columnas y los valores se representan con listas.
# declarar en una variable una lista con los nombres de los índices
idx_nombres = ['Prison Break', 'Breaking Bad', 'The Walking Dead', 'Sherlock']

# declarar en una variable un diccionario con listas
datos = {'año lanzamiento': ['2018', '2013', '2015', '2016'], 
               'puntaje usuarios': [98, 97, 98, 95]}

# crear el DataFrame de pandas
df = pd.DataFrame(datos, index = idx_nombres) 
  
# imprimir en consola el DataFrame 
print(df)

Tercera forma: Empleando una lista de diccionarios

# declarar en una variable una lista con los nombres de los índices
idx_nombres = ['Prison Break', 'Breaking Bad', 'The Walking Dead', 'Sherlock']

# declarar en una variable una lista de diccionarios
datos = [{'año lanzamiento': '2018', 'puntaje usuarios': 98},
               {'año lanzamiento': '2013', 'puntaje usuarios': 97},
               {'año lanzamiento': '2015', 'puntaje usuarios': 98},
               {'año lanzamiento': '2016', 'puntaje usuarios': 95}] 

# crear el DataFrame de pandas
df = pd.DataFrame(datos, index = idx_nombres) 
  
# imprimir en consola el DataFrame 
print(df)
  • Cuarta forma: Empleando un diccionario de Series de Pandas

Donde las claves son los nombres de columnas y los valores se representan mediante Series a través del constructor pd.Series:

# declarar en una variable una lista con los nombres de los índices
idx_nombres = ['Prison Break', 'Breaking Bad', 'The Walking Dead', 'Sherlock']

# declarar en una variable un diccionario de Series de pandas
datos = {'año lanzamiento': pd.Series(['2018', '2013', '2015', '2016'], 
                                                                  index = idx_nombres), 
               'puntaje usuarios': pd.Series([98, 97, 98, 95], 
                                                                 index = idx_nombres)} 

# crear el DataFrame de pandas
df = pd.DataFrame(datos, index = idx_nombres) 
  
# imprimir en consola el DataFrame 
print(df)

Siguientes pasos con Pandas

Con un mayor entendimiento de Pandas y el uso de DataFrames, podemos dar los primeros pasos empleando Python para Data Science. En próximas etapas, se revisarán procesos para la exploración, limpieza y análisis de datos empleando esta librería.

Te recomendamos, continuar al día con nuestras publicaciones y compartir la publicación comentando temáticas de interés para próximos artículos.

Fuentes de consulta:

  • McKinney, W., & Team, P. D. (2015). pandas: powerful Python data analysis toolkit. Pandas—Powerful Python Data Analysis Toolkit, 1625.
  • pandas documentation (2020). Recuperado de:
  • https://pandas.pydata.org/pandas-docs/stable/index.html
  • Introducción a Python para Ciencia de Datos (databits, 2020). Recuperado de: https://databits.ai/tienda/cursos/python/introduccion-a-python/
  • Netflix Shows (data.world, 2017). Recuperado de: https://data.world/chasewillden/netflix-shows

¿Quieres aprender Pandas aplicado a diferentes situaciones? Con nuestro curso especializado modalidad online-en vivo de: “Introducción a Marketing Analytics con Python” analiza una campaña de marketing con Pandas donde pondrás en práctica los conocimientos adquiridos generando soluciones a problemáticas del mundo de las ventas, promociones y más. Por otro lado, si deseas conocer más sobre Pandas en un nivel básico te recomendamos nuestro curso modalidad online “A tu ritmo” de: “Introducción a Python para Ciencia de Datos”.



Autor: Paúl Córdova Vargas

Investigador de Datos en handytec Academy y consultor de proyectos de analítica avanzada en handytec. Economista con mención en econometría de la Pontificia Universidad Católica del Ecuador, sede Quito y Máster en Data Science para Finanzas por el Colegio Universitario de Estudios Financieros, campus Madrid. Su experiencia actual se basa en la implementación de proyectos de analítica principalmente en la industria financiera y en el desarrollo de formación en Ciencia de Datos aplicando metodologías innovadoras de aprendizaje.

Deja un comentario