📦 Abriendo los cofres: CSV y Excel
En Python, pandas es la llave maestra. Aquí todas las variaciones para que nada te tome por sorpresa.
🧳 Cofre CSV
import pandas as pd
# Básico
df = pd.read_csv('datos.csv')
# Con separador punto y coma
df = pd.read_csv('datos.csv', sep=';')
# Sin encabezados
df = pd.read_csv('datos.csv', header=None, names=['edad','altura'])
# Codificación especial
df = pd.read_csv('datos.csv', encoding='latin1')
# Índice desde columna
df = pd.read_csv('datos.csv', index_col=0)
# Saltar filas iniciales
df = pd.read_csv('datos.csv', skiprows=3)
# Solo ciertas columnas
df = pd.read_csv('datos.csv', usecols=['nombre','puntaje'])
📊 Cofre Excel
# Hoja por nombre o posición
df = pd.read_excel('ventas.xlsx', sheet_name='Pociones')
df = pd.read_excel('ventas.xlsx', sheet_name=0)
# Varias hojas a la vez
hojas = pd.read_excel('ventas.xlsx', sheet_name=['Hoja1','Hoja2'])
# Saltar filas decorativas
df = pd.read_excel('ventas.xlsx', skiprows=2)
# Elegir columnas por letra o nombre
df = pd.read_excel('ventas.xlsx', usecols='A,C,E:G')
💡 En Google Colab usa files.upload(), monta Google Drive o lee directamente desde una URL.
🕺 Los tres bailarines de la correlación
🥇 Pearson
El vals clásico. Mide relación lineal. Supone normalidad.
$$ r = \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum (x_i - \bar{x})^2 \sum (y_i - \bar{y})^2}} $$
🥈 Spearman
La salsa. Trabaja con rangos. Captura relaciones monótonas.
$$ r_s = 1 - \frac{6 \sum d_i^2}{n(n^2 - 1)} $$
🥉 Kendall
El tango elegante. Compara pares concordantes/discordantes.
$$ \tau = \frac{C - D}{\frac12 n(n-1)} $$
En Python los invocamos con from scipy.stats import pearsonr, spearmanr, kendalltau. Siempre obtienes coeficiente y p-valor.
🚀 3 Misiones en Google Colab
🎓 Notas de hechicería vs horas de estudio
Subimos notas.csv con columnas horas_estudio y nota_final. Calculamos las tres correlaciones.
from scipy.stats import pearsonr, spearmanr, kendalltau
x = df['horas_estudio']
y = df['nota_final']
r_p, p_p = pearsonr(x, y)
r_s, p_s = spearmanr(x, y)
r_k, p_k = kendalltau(x, y)
🎩 Pearson suele dominar aquí si la relación es lineal. Añade un estudiante “genio” (1 hora, nota 9.9) y observa cómo Spearman y Kendall se mantienen firmes.
🧙 Ventas mágicas (Excel con varias hojas)
Archivo ventas_magicas.xlsx, hoja Pociones. Saltamos 2 filas decorativas.
df = pd.read_excel('ventas_magicas.xlsx', sheet_name='Pociones', skiprows=2)
# Correlaciones entre Publicidad, Precio y Ventas
r_p, p_p = pearsonr(df['Publicidad'], df['Ventas'])
r_s, p_s = spearmanr(df['Publicidad'], df['Ventas'])
🔍 El mapa de calor con sns.heatmap revela todos los bailes a la vez.
🍦 Helados y temperatura (relación no lineal)
Datos con estacionalidad. La relación sube y luego se aplana.
# Cargar con parseo de fechas
df = pd.read_csv('helados.csv', parse_dates=['Fecha'])
r_pe, p_pe = pearsonr(df['Temperatura'], df['Ventas_helados'])
r_sp, p_sp = spearmanr(df['Temperatura'], df['Ventas_helados'])
r_ke, p_ke = kendalltau(df['Temperatura'], df['Ventas_helados'])
🏆 Aquí Spearman y Kendall suelen superar a Pearson porque la relación no es perfectamente recta.
🧪 Laboratorio interactivo de correlaciones
Introduce tus propios pares de números (separados por comas) y observa el baile en tiempo real.