Introduccion a Pandas
Pandas: análisis de datos tabulares
Pandas es la herramienta que más usarás como analista. Trabaja con datos en forma de tabla, igual que una hoja de cálculo, pero con la potencia de Python. Sus dos estructuras son la Series (una columna con índice) y el DataFrame (una tabla con filas y columnas). El DataFrame será tu compañero diario.
Crear estructuras
import pandas as pd
# Series: array 1D con índice
s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
# DataFrame: la tabla 2D que más usarás
df = pd.DataFrame({
'nombre': ['Ana', 'Luis', 'María'],
'edad': [25, 30, 28],
'ciudad': ['Madrid', 'Barcelona', 'Valencia']
})Cargar datos desde fuentes reales
# CSV (lo más habitual)
df = pd.read_csv('datos.csv')
# Excel
df = pd.read_excel('datos.xlsx', sheet_name='Hoja1')
# JSON
df = pd.read_json('datos.json')
# Directamente desde una URL
df = pd.read_csv('https://ejemplo.com/data.csv')Exploración inicial: lo primero que haces siempre
df.head() # primeras 5 filas
df.tail(10) # últimas 10 filas
df.shape # (filas, columnas)
df.info() # tipos de dato y conteo de nulos
df.describe() # estadísticas de las columnas numéricas
df.columns # nombres de columnas
df['ciudad'].unique() # valores únicos
df['ciudad'].value_counts() # frecuencia de cada valorConsejo
Antes de transformar nada, ejecuta siempre df.head(), df.info() y df.describe(). En 30 segundos sabes el tamaño, los tipos y dónde hay valores faltantes.
Seleccionar datos: loc e iloc
df['nombre'] # una columna (Series)
df[['nombre', 'edad']] # varias columnas (DataFrame)
# iloc: por posición numérica
df.iloc[0] # primera fila
df.iloc[0:3] # filas 0, 1, 2
# loc: por etiqueta de índice y nombre de columna
df.loc[0, 'nombre'] # valor concreto
df.loc[:, 'edad'] # toda la columna edad¿Cuándo uso loc y cuándo iloc?
Usa iloc cuando piensas en posiciones (la fila número 3, las columnas 0 a 2). Usa loc cuando piensas en etiquetas (la fila con índice "2025-01" y la columna "ventas"). Mezclarlos es una fuente frecuente de errores.
Quieres ver rápidamente cuántos valores nulos hay en cada columna. ¿Qué método te lo muestra?
df.info() lista cada columna, su tipo y el número de valores no nulos, de donde deduces los faltantes.Ejercicio práctico
Objetivo: cargar y explorar un conjunto de datos de verdad.
- Crea un DataFrame con 6 productos: columnas nombre, categoría, precio y stock.
- Ejecuta
head(),info()ydescribe()y describe en una frase lo que ves. - Selecciona solo las columnas nombre y precio.
- Usa
value_counts()sobre categoría para ver cuántos productos hay por tipo.
Entregable: notebook con la exploración inicial y el conteo por categoría.
Para recordar
- Series = columna con índice; DataFrame = tabla; este último es el que más usarás.
read_csv,read_excelyread_jsoncargan datos desde casi cualquier fuente.locselecciona por etiqueta yilocpor posición.