Para trabajar con estadística descriptiva usaremos las librerías más comunes en ciencia de datos:
En la terminal/prompt de comandos se instalan con:
pip install numpy pandas matplotlib seaborn scipy
El estándar es importarlas con alias cortos y fáciles de recordar:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats
Podemos trabajar con datasets integrados o con archivos propios (CSV, Excel, etc.).
# Script 1: generar un dataset sintético
import numpy as np
import pandas as pd
np.random.seed(0)
n = 100
df = pd.DataFrame({
"edad": np.random.randint(18, 65, size=n),
"ingreso_mensual": np.random.normal(8500, 2000, size=n).round(0),
"puntaje_satisfaccion": np.random.randint(1, 11, size=n) # escala 1 a 10
})
print("Primeras filas:")
print(df.head())
Si tenemos un archivo empleados.csv
:
# Script 2: cargar un archivo CSV
import pandas as pd
# Para que este script funcione, necesitas crear un archivo llamado empleados.csv
# con contenido como:
# Nombre,Edad,Salario
# Ana,23,55000
# Luis,35,72000
try:
df = pd.read_csv("empleados.csv")
print("Dimensiones:", df.shape)
print("Primeras filas:")
print(df.head())
except FileNotFoundError:
print("Error: El archivo 'empleados.csv' no fue encontrado.")
print("Por favor, crea el archivo con datos para que este script funcione.")
👉 Recomendación: siempre verificar df.shape
para saber cuántas filas y columnas hay.
Al cargar un dataset, lo primero es inspeccionarlo.
# Script 3: exploración básica de un DataFrame
import pandas as pd
import numpy as np
# Dataset pequeño de ejemplo
datos = {
"Nombre": ["Ana", "Luis", "Carla", "Pedro", "María"],
"Edad": [23, 35, 29, 42, 31],
"Salario": [55000, 72000, 61000, 83000, 59000]
}
df = pd.DataFrame(datos)
print("Vista rápida:")
print(df.head())
print()
print("Info de columnas y tipos de datos:")
df.info()
print()
print("Resumen estadístico:")
print(df.describe())
print()
print("Valores faltantes por columna:")
print(df.isnull().sum())
Podemos dar un primer vistazo con histogramas y boxplots.
# Script 4: gráficos iniciales
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
np.random.seed(1)
df = pd.DataFrame({
"edad": np.random.randint(18, 70, size=200),
"ingreso": np.random.normal(9000, 2500, size=200).round(0)
})
# Histograma
sns.histplot(df["ingreso"], bins=20, kde=True)
plt.title("Distribución de ingresos")
plt.show()
# Boxplot
sns.boxplot(x=df["ingreso"])
plt.title("Boxplot de ingresos")
plt.show()
👉 Esto nos permite detectar valores atípicos y la forma de la distribución.