Primeros pasos con Pandas

Pandas

En este artículo aprenderemos en qué consiste una de las librerías más famosas del lenguaje Python. Trataremos de explicar desde su instalación hasta realizar una pequeña prueba para ir entendiendo como trabajar con esta librería. Este artículo va a ser el inicio de otros con el que iremos profundizando los conocimientos y viendo posibles aplicaciones de Machine Learning, Big Data o Data Science.

Tabla de contenidos

1. Introducción

Pandas es un paquete de Python que proporciona estructuras de datos similares a los dataframes de R. Es importante señalar aquí que, dado que Pandas lleva a cabo tareas importantes, como alinear datos para su comparación, fusionar conjuntos de datos, gestión de datos perdidos, se ha convertido en una librería muy importante para procesar datos a alto nivel en Python (es decir, estadísticas). Fue diseñada originalmente para gestionar datos financieros y como alternativa al uso de hojas de cálculo.

Esta librería depende de Numpy, que añade un potente tipo matricial a Python. Los principales tipos de datos que pueden representarse con pandas son:

  • Datos heterogéneos (o datos tabulares, como son llamados comúnmente)
  • Series temporales.

 

Pandas proporciona herramientas que permiten:

  • Leer y escribir datos en diferentes formatos: CSV, Microsoft Excel, bases SQL y formato HDF5.
  • Seleccionar y filtrar de manera sencilla tablas de datos en función de posición, valor o etiquetas.
  • Fusionar y unir datos.
  • Transformar datos aplicando funciones tanto en global como por ventanas.
  • Manipulación de series temporales.
  • Hacer gráficas por medio de matplotlib o seaborn, entre otros.

 

En pandas existen tres tipos básicos de objetos todos ellos basados a su vez en Numpy:

  • Series (listas, 1D),
  • DataFrame (tablas, 2D) y
  • Panels (tablas 3D).

Nosotros vamos a ver el uso básico de los dos primeros tipos de objetos, para un mayor detalle puedes consultar la documentación oficial.

2. Instalación

La forma más fácil de instalar Pandas es instalarlo como parte de la distribución Anaconda, una distribución multiplataforma para el análisis de datos y la computación científica. Este es el método de instalación recomendado para la mayoría de los usuarios.

En este caso, hemos preferido usar el propio instalador de Python. Antes de nada, como requisito imprescindible, es tener Python3 y Numpy instalados en nuestro equipo. Dicho esto, instalar Pandas es tan sencillo como ejecutar el siguiente comando:


Text
pip3 install pandas

3. DataFrames

Para trabajar con datos tabulares (filas y columnas), Pandas incluye la versátil estructura DataFrame. Un DataFrame o frame se puede entender como una colección de Series (columnas), todas compartiendo un listado de índices únicos. La forma más común de crear un frame es con un diccionario en el que cada clave se asocia a un listado de elementos de igual longitud.


Text
import pandas as pd

diccionario = { "nombre" : ["Marisa","Laura","Manuel"], "edad" : [34,29,11] }
frame = pd.DataFrame(diccionario)

display(frame)
nombre edad
0 Marisa 34
1 Laura 29
2 Manuel 11

Como podemos observar, la clave se utiliza como nombre de cada columna (serie) y cada elemento se asocia a una fila en función del índice.

4. Series

Las Series son estructuras unidimensionales similares a las ndarray de NumPy, en las que cada elemento posee también un índice único. Se pueden crear tanto a partir de listas como de diccionarios. La forma más sencilla de crear una serie es con el constructor pd.Series().

Pandas asume índices de 0 a n-1 (donde n es el tamaño de la de elementos). De manera opcional, podemos especificar una lista con las etiquetas de las filas.


Text
serie = pd.Series(['Barcelona','Madrid','Valencia','Sevilla'])
print(serie, 'n')
serie2 = pd.Series(['Barcelona','Madrid','Valencia','Sevilla'], index=['a','b','c','d'])
print(serie2)

Text
0    Barcelona
1       Madrid
2     Valencia
3      Sevilla
dtype: object

a    Barcelona
b       Madrid
c     Valencia
d      Sevilla
dtype: object

5. Leer fichero CSV

La lectura de fichero es realmente sencilla con Pandas. Con su método read_csv() le podemos pasar la ruta online para que se lo descargue o si ya tenemos uno en nuestro equipo, solo tendríamos que poner la ruta de este para que pueda leerlo.

Aunque nosotros hemos usado read_csv, tiene muchos más para poder cargar datos que se encuentren en ficheros con distintas extensiones. En la documentación podemos ver el resto de implementaciones.


Text
bills = pd.read_csv("https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv")
display(bills.sample(10))
total_bill tip sex smoker day time size
115 17.31 3.50 Female No Sun Dinner 2
26 13.37 2.00 Male No Sat Dinner 2
24 19.82 3.18 Male No Sat Dinner 2
122 14.26 2.50 Male No Thur Lunch 2
155 29.85 5.14 Female No Sun Dinner 5
32 15.06 3.00 Female No Sat Dinner 2
231 15.69 3.00 Male Yes Sat Dinner 3
79 17.29 2.71 Male No Thur Lunch 2
243 18.78 3.00 Female No Thur Dinner 2
12 15.42 1.57 Male No Sun Dinner 2

Con bills.sample(10) conseguimos obtener del DataFrame 10 valores aleatorios del conjunto de datos para poder echar un vistazo como está estructurada nuestra tabla.

6. Manipulación de datos

Dado que en el paso anterior ya tenemos un conjunto de datos, vamos a proceder a realizar unas operaciones para ver el potencial de esta librería, ya que con pocas líneas de código obtendremos el resultado esperado.


Text
# Saber la media de tips
mean = bills['tip'].mean()
print(f'Media = {mean:.2f}')

# Hacer una máscara para obtener aquellas bills cuyo total es superior a 15
bills = bills[bills['total_bill'] > 15]
display(bills.sample(10))

# Ver cuantos son fumadores y cuantos no y cuyo total es superior a 15
print(bills['smoker'].value_counts())

# Si solo queremos imprimir las columnas total_bill y day haremos lo siguiente
display(bills.loc[:, ['total_bill', 'day']].sample(5))

Text
Media = 3.46
total_bill tip sex smoker day time size
15 21.58 3.92 Male No Sun Dinner 2
160 21.50 3.50 Male No Sun Dinner 4
3 23.68 3.31 Male No Sun Dinner 2
101 15.38 3.00 Female Yes Fri Dinner 2
134 18.26 3.25 Female No Thur Lunch 2
227 20.45 3.00 Male No Sat Dinner 4
17 16.29 3.71 Male No Sun Dinner 3
20 17.92 4.08 Male No Sat Dinner 2
231 15.69 3.00 Male Yes Sat Dinner 3
93 16.32 4.30 Female Yes Fri Dinner 2

Text
No     100
Yes     64
Name: smoker, dtype: int64
total_bill day
211 25.89 Sat
65 20.08 Sat
243 18.78 Thur
34 17.78 Sat
25 17.81 Sat

La cantidad de operaciones que podemos hacer es realmente grande y por eso no podemos poner todas pero os comparto la documentación en la sección de enlaces y referencias para que podáis investigar por vosotros mismos y buscar aquellas funcionalidades que resuelvan vuestro problema en concreto.

7. Conclusiones

Esto ha sido un artículo introductorio para entender un poco qué es la librería y qué cosas se puede hacer con ella. También hemos visto lo que es una DataFrame y una Serie, y hemos jugueteado un poco con ellos. En el próximo artículo haremos un caso más real y mostraremos otra alternativa a la que dio Juan Antonio, en el siguiente tutorial con R.

Enlaces y referencias

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad

Información básica acerca de la protección de datos

  • Responsable: IZERTIS S.A.
  • Finalidad: Envío información de carácter administrativa, técnica, organizativa y/o comercial sobre los productos y servicios sobre los que se nos consulta.
  • Legitimación: Consentimiento del interesado
  • Destinatarios: Otras empresas del Grupo IZERTIS. Encargados del tratamiento.
  • Derechos: Acceso, rectificación, supresión, cancelación, limitación y portabilidad de los datos.
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad

Ingeniero de Software apasionado por la excelencia y el aprendizaje constante. Especializado en arquitecturas escalables, patrones de diseño y despliegue continuo. Transformo desafíos en soluciones de alto impacto que agregan valor tangible. Creo en la ingeniería sólida y la cobertura exhaustiva de código para lograr estabilidad y rendimiento óptimo. Listo para impulsar proyectos hacia el éxito con innovación y calidad. ¡Conectemos para abordar los desafíos tecnológicos juntos! ??

¿Quieres publicar en Adictos al trabajo?

Te puede interesar

30/10/2025

Benjamín Suárez Menéndez

El Complex Problem Solving (CPS) es un proceso estructurado basado en herramientas, técnicas y actitudes que nos facilita la resolución de problemas complejos.

03/10/2025

Miguel García Rodríguez

Descubre cómo el diseño y la psicología del comportamiento utilizan sesgos cognitivos para influir en la toma de decisiones de los usuarios y potenciar la persuasión.

30/09/2025

Iván García Sainz-Aja

En este artículo exploraremos cómo utilizar ZenWave360 para generar un proyecto completo de Spring Boot con Kotlin a partir de un modelo DSL de Lenguaje Ubicuo.