Análisis de Anomalías Climáticas con Python

Data Science
Python
Clima
El cambio climático es uno de los desafíos más grandes de nuestra era. En este post, exploraremos cómo utilizar Python y Pandas para analizar datos históricos de temperatura y visualizar anomalías.
Autor/a

Carlo Ernesto Millan

Fecha de publicación

21 de noviembre de 2025

Introducción

El cambio climático es uno de los desafíos más grandes de nuestra era. En este post, exploraremos cómo utilizar Python y Pandas para analizar datos históricos de temperatura y visualizar anomalías.

Preparación de los Datos

Primero, importamos las librerías necesarias. Utilizaremos pandas para la manipulación de datos y matplotlib junto con seaborn para las visualizaciones.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

# Configuración de estilo
sns.set_theme(style="whitegrid")
plt.rcParams['figure.figsize'] = (10, 6)

Generamos algunos datos sintéticos para este ejemplo, simulando temperaturas mensuales a lo largo de 20 años.

# Generar datos de ejemplo
np.random.seed(42)
dates = pd.date_range(start='2000-01-01', end='2020-12-31', freq='M')
base_temp = 15 + np.sin(np.linspace(0, 20*np.pi, len(dates))) * 10 # Ciclo estacional
trend = np.linspace(0, 1.5, len(dates)) # Tendencia de calentamiento
noise = np.random.normal(0, 1, len(dates)) # Variabilidad natural

temps = base_temp + trend + noise
df = pd.DataFrame({'Fecha': dates, 'Temperatura': temps})
df.set_index('Fecha', inplace=True)

print(df.head())

Visualización de la Serie Temporal

Vamos a visualizar la serie completa para ver la tendencia y la estacionalidad.

plt.figure(figsize=(12, 6))
plt.plot(df.index, df['Temperatura'], label='Temperatura Mensual', color='steelblue', alpha=0.7)
plt.plot(df.index, df['Temperatura'].rolling(window=12).mean(), label='Media Móvil (12 meses)', color='darkorange', linewidth=2)
plt.title('Evolución de la Temperatura Simulada (2000-2020)')
plt.xlabel('Año')
plt.ylabel('Temperatura (°C)')
plt.legend()
plt.show()

Análisis de Anomalías

Una forma común de ver el cambio climático es a través de las anomalías, es decir, cuánto se desvía la temperatura de un promedio base.

# Calcular promedio base (ej. primeros 10 años)
baseline = df.loc['2000':'2010', 'Temperatura'].mean()
df['Anomalia'] = df['Temperatura'] - baseline

# Visualizar anomalías
plt.figure(figsize=(12, 6))
colors = ['red' if x > 0 else 'blue' for x in df['Anomalia']]
plt.bar(df.index, df['Anomalia'], color=colors, width=20)
plt.title('Anomalías de Temperatura respecto al periodo 2000-2010')
plt.xlabel('Año')
plt.ylabel('Anomalía (°C)')
plt.show()

Como podemos observar en el gráfico de barras, los últimos años muestran una predominancia de anomalías positivas, indicando una tendencia al calentamiento en nuestros datos simulados.