La base de Pandas son dos estructuras de datos que permiten representar desde columnas aisladas hasta tablas completas dentro de proyectos en Python.
Dominar estas estructuras es esencial para manipular datasets reales de forma eficiente y escalable.
Una Serie es similar a una lista o a un array de NumPy, con la diferencia de que cada valor está identificado por un índice (label) que puede ser numérico o personalizado.
Creación de Series
import pandas as pd
# Serie a partir de una lista
serie = pd.Series([10, 20, 30, 40])
print("Serie desde lista:")
print(serie)
# Serie con índices personalizados
serie_idx = pd.Series([10, 20, 30, 40], index=["a", "b", "c", "d"])
print("\nSerie con índices personalizados:")
print(serie_idx)
# Serie a partir de un diccionario
serie_dict = pd.Series({"Ana": 23, "Luis": 35, "Carla": 29})
print("\nSerie desde diccionario:")
print(serie_dict)
Salida esperada:
Serie desde lista:
0 10
1 20
2 30
3 40
dtype: int64
Serie con índices personalizados:
a 10
b 20
c 30
d 40
dtype: int64
Serie desde diccionario:
Ana 23
Luis 35
Carla 29
dtype: int64
👉 Cada valor está asociado a un índice, lo que facilita seleccionar y combinar información sin perder el contexto.
Indexación en Series
# Acceso por índice numérico
print(serie[0]) # 10
# Acceso por etiqueta
print(serie_idx["b"]) # 20
# Slicing (por posición)
print(serie[1:3]) # valores 20 y 30
# Slicing (por etiquetas)
print(serie_idx["b":"d"])
Operaciones básicas con Series
# Operaciones aritméticas
print(serie + 5) # suma 5 a todos los elementos
print(serie * 2) # multiplica por 2
# Comparaciones
print(serie > 25) # devuelve True/False por cada valor
# Funciones estadísticas
print("Suma:", serie.sum())
print("Media:", serie.mean())
print("Máximo:", serie.max())
👉 Las Series resultan ideales cuando trabajamos con una sola columna de información, como edades, precios o calificaciones.
El DataFrame es la estructura estrella de Pandas: se asemeja a una tabla de Excel o SQL, con filas identificadas por un índice y columnas con nombres. Puede crearse a partir de múltiples fuentes de datos.
1) Desde un diccionario de listas
datos = {
"Nombre": ["Ana", "Luis", "Carla", "Pedro"],
"Edad": [23, 35, 29, 42],
"Ciudad": ["Córdoba", "Buenos Aires", "Rosario", "Mendoza"]
}
df = pd.DataFrame(datos)
print(df)
Salida esperada:
Nombre Edad Ciudad
0 Ana 23 Córdoba
1 Luis 35 Buenos Aires
2 Carla 29 Rosario
3 Pedro 42 Mendoza
2) Desde una lista de diccionarios
datos2 = [
{"Nombre": "Ana", "Edad": 23, "Ciudad": "Córdoba"},
{"Nombre": "Luis", "Edad": 35, "Ciudad": "Buenos Aires"},
{"Nombre": "Carla", "Edad": 29, "Ciudad": "Rosario"}
]
df2 = pd.DataFrame(datos2)
print(df2)
3) Desde un array de NumPy
import numpy as np
matriz = np.array([[10, 20, 30], [40, 50, 60]])
df3 = pd.DataFrame(matriz, columns=["A", "B", "C"])
print(df3)
Salida esperada:
A B C
0 10 20 30
1 40 50 60
Operaciones básicas con DataFrames
# Ver primeras filas
print(df.head())
# Seleccionar una columna
print(df["Nombre"])
# Seleccionar varias columnas
print(df[["Nombre", "Edad"]])
# Seleccionar una fila por índice
print(df.loc[0]) # por etiqueta
print(df.iloc[2]) # por posición
# Estadísticas rápidas
print(df.describe())
Con estas estructuras podés cargar, limpiar y analizar cualquier dataset de manera profesional.