pandas: Series y DataFrame
Al finalizar este tema
Podrás explicar qué son las Series y los DataFrame de pandas, y cargar archivos CSV para realizar operaciones básicas.
Qué es pandas
pandas es una biblioteca de Python para manipular datos tabulares. Puedes pensar en ella como una forma de manejar hojas de cálculo de Excel mediante código.
import pandas as pd
# Leer archivo CSV — con esta línea bastadf = pd.read_csv("students.csv")print(df)nombre edad puntuación
0 Kim Hoon 25 85
1 Lee Soo 23 92
2 Park Jin 27 78pd es la abreviatura convencional de pandas. En el código de análisis de datos, casi siempre se utiliza de esta manera.
Series: datos de una sola fila
Una Series es un arreglo unidimensional con índice. Una columna de un DataFrame es una Series.
import pandas as pd
# Crear Seriesscores = pd.Series([85, 92, 78], index=["Kim Hoon", "Lee Soo", "Park Jin"])print(scores)Kim Hoon 85
Lee Soo 92
Park Jin 78
dtype: int64# Acceso por índiceprint(scores["Lee Soo"]) # 92
# Filtro de condicionesprint(scores[scores >= 80])# Lee Soo 92# Kim Hoon 85
# Operaciónprint(scores.mean()) # 85.0print(scores.max()) # 92Es similar a una lista, pero se puede acceder por nombre y cuenta con métodos estadísticos integrados.
DataFrame — Tabla completa
Un DataFrame es una tabla bidimensional compuesta por múltiples Series. Tiene filas (rows) y columnas (columns).
import pandas as pd
# Crear diccionariodata = { "Nombre": ["Kim Hoon", "Lee Soo", "Park Jin"], "Edad": [25, 23, 27], "Puntuación": [85, 92, 78]}df = pd.DataFrame(data)print(df)Nombre Edad Puntuación
0 Kim Hoon 25 85
1 Lee Soo 23 92
2 Park Jin 27 78Controles básicos
# Selección de columnaprint(df["nombre"]) # Devuelve Seriesprint(df[["nombre", "puntuación"]]) # Devuelve DataFrame
# Selección de filaprint(df.loc[0]) # Fila 0 (por nombre)print(df.iloc[0]) # Fila 0 (por posición)
# Filtro por condiciónhigh = df[df["puntuación"] >= 80]print(high)# nombre edad puntuación# 0 Kim Hoon 25 85# 1 Lee Soo 23 92
# Estadísticas básicasprint(df.describe())# Promedio, desviación estándar, mínimo/máximo de edad y puntuación, etc.Métodos frecuentes
df.head(3) # Primeras 3 filasdf.tail(3) # Últimas 3 filasdf.shape # (número de filas, número de columnas) — ej: (3, 3)df.columns # Lista de nombres de columnasdf.dtypes # Tipo de datos de cada columnadf.info() # Información resumida (incluye valores faltantes)df.sort_values("puntuación", ascending=False) # Ordenar puntuaciones de mayor a menorAgregar y eliminar columnas
# Agregar nueva columnadf["aprobado"] = df["puntuación"] >= 80print(df)# nombre edad puntuación aprobado# 0 Kim Hun 25 85 True# 1 Lee Su 23 92 True# 2 Park Jin 27 78 False
# Eliminar columnadf = df.drop("aprobado", axis=1)# axis=0 es fila, axis=1 es columna¿Por qué pandas?
| Tarea | Python puro | pandas |
|---|---|---|
| Lectura de CSV | 10+ líneas (open, split, bucle) | pd.read_csv() 1 línea |
| Calcular la media | sum()/len() cálculo directo | df.mean() |
| Filtrado condicional | for + if | df[df["columna"] > valor] |
| Ordenación | sorted() + key | df.sort_values() |
Además de reducir la cantidad de código, pandas está optimizado internamente con C/Cython y es entre 10 y 100 veces más rápido que Python puro.