2. Estructuras de datos principales en Pandas

La base de Pandas son dos estructuras de datos que permiten representar desde columnas aisladas hasta tablas completas dentro de proyectos en Python.

  • Series: una sola columna (1 dimensión) con índices.
  • DataFrames: una tabla completa con filas y columnas (2 dimensiones).

Dominar estas estructuras es esencial para manipular datasets reales de forma eficiente y escalable.

2.1 Series

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.

2.2 DataFrames

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())

Resumen rápido

  • Las Series representan una columna individual con índices.
  • Los DataFrames son tablas completas con filas y columnas.

Con estas estructuras podés cargar, limpiar y analizar cualquier dataset de manera profesional.