Β‘Copiado!
Datasets Internos Disponibles
Datasets incluidos en statslibx
Disponibles sin descargas adicionales Β· listos para usar

Todos los datasets estΓ‘n empaquetados dentro de statslibx.datasets. Se cargan automΓ‘ticamente sin necesidad de rutas locales.

🌸
iris.csv
150 filas Β· 5 columnas Β· ClasificaciΓ³n

El clΓ‘sico dataset de Fisher. Medidas de sΓ©palos y pΓ©talos de 3 especies de iris (setosa, versicolor, virginica). Ideal para anΓ‘lisis descriptivo y clasificaciΓ³n.

load_iris()
🐧
penguins.csv
344 filas Β· 8 columnas Β· ClasificaciΓ³n

Medidas de pingΓΌinos Palmer de 3 especies (Adelie, Chinstrap, Gentoo). Alternativa moderna al iris con datos reales de campo y valores nulos.

load_penguins()
🚒
titanic.csv
891 filas Β· 12 columnas Β· Supervivencia

Pasajeros del Titanic con variable de supervivencia. Ideal para Chi-cuadrado, anΓ‘lisis categΓ³rico, regresiΓ³n logΓ­stica y exploraciΓ³n de datos faltantes.

load_dataset("titanic.csv")
πŸ“ˆ
sp500_companies.csv
503 empresas Β· Datos financieros

InformaciΓ³n de las empresas del Γ­ndice S&P 500: sector, capitalizaciΓ³n de mercado, ingresos y mΓ‘s. Ideal para anΓ‘lisis financiero y agrupamiento.

load_dataset("sp500_companies.csv")
πŸ“š
course_completion.csv
Datos educativos Β· Comportamiento

Datos de completitud de cursos en línea. Útil para anÑlisis de comportamiento educativo, tasas de abandono y estudios de retención.

load_dataset("course_completion.csv")
🍫
Cocoa_Bubbles_...xlsx
Nigeria Β· Ghana Β· 1980–2023 Β· Excel

Inversiones en Nigeria y Ghana entre 1980 y 2023. Datos financieros reales en formato Excel. Perfecto para series temporales y anΓ‘lisis econΓ³mico.

load_dataset("Cocoa...xlsx")
Funciones de Carga EspecΓ­ficas
load_iris(backend, return_X_y)
backend: str = 'pandas'  Β·  return_X_y: Tuple[List[str], str] | None = None
β†’ pd.DataFrame | (X, y)

Carga el dataset Iris directamente. Con return_X_y retorna arrays numpy (X, y) listos para machine learning, donde el primer elemento de la tupla es la lista de columnas predictoras y el segundo la columna objetivo.

ParΓ‘metroTipoDefaultDescripciΓ³n
backendstr'pandas'Backend de DataFrame. Actualmente solo 'pandas' soportado.
return_X_yTuple | NoneNoneSi se especifica, retorna (X, y) como arrays numpy. Formato: ([col1, col2, ...], 'col_target')
Python
from statslibx.datasets import load_iris

# Como DataFrame
df = load_iris()
print(df.shape)          # (150, 5)
print(df.columns.tolist())
# ['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'species']

# Como arrays numpy (X, y) para ML
X, y = load_iris(
    return_X_y=(
        ['sepal_length', 'sepal_width', 'petal_length', 'petal_width'],
        'species'
    )
)
print(X.shape)   # (150, 4)
print(y.shape)   # (150,)
print(y[:5])     # ['setosa' 'setosa' 'setosa' ...]
load_penguins(backend, return_X_y)
Mismos parΓ‘metros que load_iris()
β†’ pd.DataFrame | (X, y)

Carga el dataset Palmer Penguins. Este dataset contiene valores nulos en algunas columnas, lo que lo hace ideal para practicar preprocesamiento antes del anΓ‘lisis.

Python
from statslibx.datasets import load_penguins

df = load_penguins()
print(df.head())
print(df.dtypes)

# Con return_X_y
X, y = load_penguins(
    return_X_y=(
        ['bill_length_mm', 'bill_depth_mm', 'flipper_length_mm'],
        'species'
    )
)
FunciΓ³n GenΓ©rica de Carga
load_dataset(name, backend, return_X_y, sep)
name: str  Β·  backend: str = 'pandas'  Β·  return_X_y: Tuple | None  Β·  sep: str = ','
β†’ pd.DataFrame | (X, y)

FunciΓ³n genΓ©rica para cargar cualquier dataset por nombre. Primero busca en el paquete interno statslibx.datasets; si no lo encuentra, intenta cargarlo como ruta local. Soporta mΓΊltiples formatos de archivo detectados automΓ‘ticamente por extensiΓ³n.

ParΓ‘metroTipoDefaultDescripciΓ³n
namestrβ€”Nombre del dataset interno (ej: "iris.csv") o ruta local completa.
backendstr'pandas'Backend de procesamiento. Solo 'pandas' disponible actualmente.
return_X_yTuple | NoneNoneSi se especifica, retorna (X, y). Formato: ([col1, col2], 'target')
sepstr','Separador de columnas para archivos CSV. Ej: ';' para CSV europeo.

Formatos soportados:

ExtensiΓ³nFormatoFunciΓ³n interna
.csvCSV con separador configurablepd.read_csv()
.parquetFormato columnar Apache Parquetpd.read_parquet()
.xlsx / .xlsLibro de Excelpd.read_excel()
.jsonJSON plano compatible con pandaspd.read_json()
Python
from statslibx.datasets import load_dataset

# Datasets internos del paquete
df_titanic  = load_dataset("titanic.csv")
df_penguins = load_dataset("penguins.csv")
df_sp500    = load_dataset("sp500_companies.csv")
df_cocoa    = load_dataset("Cocoa_Bubbles_Investment_Nigeria_Ghana_1980_2023.xlsx")

# Archivo local externo (CSV con separador punto y coma)
df_local = load_dataset("mis_datos/ventas_2024.csv", sep=";")

# Retornar (X, y) como arrays numpy
X, y = load_dataset(
    "titanic.csv",
    return_X_y=(['pclass', 'age', 'fare'], 'survived')
)
print(X.shape)   # (891, 3)
print(y.shape)   # (891,)
ResoluciΓ³n automΓ‘tica: Si el nombre proporcionado no existe dentro del paquete, load_dataset() intenta cargarlo como ruta del sistema de archivos local. Si tampoco existe localmente, lanza FileNotFoundError con mensaje descriptivo.
GeneraciΓ³n de Datos SintΓ©ticos
generate_dataset(n_rows, schema, seed, save, filename)
n_rows: int  Β·  schema: dict  Β·  seed: int | None  Β·  save: bool = False  Β·  filename: str | None
β†’ pd.DataFrame

Genera un DataFrame sintΓ©tico con la cantidad de filas y esquema de columnas especificado. Cada columna se define con una distribuciΓ³n estadΓ­stica y tipo de datos. El resultado es reproducible con seed. Si save=True y se provee filename, guarda el resultado como CSV; de lo contrario guarda como dataset.csv.

ParΓ‘metroTipoDefaultDescripciΓ³n
n_rowsintβ€”NΓΊmero de filas a generar (requerido).
schemadictβ€”Diccionario donde cada clave es un nombre de columna y el valor es su configuraciΓ³n de distribuciΓ³n (requerido).
seedint | NoneNoneSemilla de aleatoriedad. Si es None usa 42 por defecto. Debe ser entero.
saveboolFalseSi True, guarda el DataFrame como CSV en disco.
filenamestr | NoneNoneNombre del archivo sin extensiΓ³n. Si save=True y filename=None, guarda como dataset.csv.
Python β€” Uso bΓ‘sico
from statslibx.datasets import generate_dataset

schema = {
    'edad':        {'dist': 'normal',      'mean': 35, 'std': 10, 'type': 'int'},
    'salario':     {'dist': 'lognormal',   'mean': 10.5, 'std': 0.5, 'type': 'float', 'round': 2},
    'experiencia': {'dist': 'exponential', 'scale': 5, 'type': 'float', 'round': 1},
}

df = generate_dataset(n_rows=200, schema=schema, seed=42)
print(df.head())
print(df.describe())
Estructura del Schema
Diccionario de configuraciΓ³n de columnas para generate_dataset()

Cada columna del schema es un diccionario con las siguientes claves:

ClaveTipoRequeridoDescripciΓ³n
diststrSΓ­DistribuciΓ³n estadΓ­stica. Ver tabla de distribuciones abajo.
typestrNo'int' o 'float'. Default: 'float'. Para 'categorical' no aplica.
roundintNoDecimales de redondeo. Default: 2 (o 0 si type='int').
choiceslistCondicionalRequerido solo para dist='categorical'. Lista de valores posibles.
Distribuciones Disponibles
7 distribuciones Β· nΓΊmerica y categΓ³rica

Cada distribuciΓ³n tiene sus propios parΓ‘metros de configuraciΓ³n. Los valores entre parΓ©ntesis son los defaults.

'normal'

mean: Media ΞΌ (def: 0)
std: DesviaciΓ³n estΓ‘ndar Οƒ (def: 1)
type: 'float' | 'int'

'uniform'

low: LΓ­mite inferior (def: 0)
high: LΓ­mite superior (def: 1)
type: 'float' | 'int'

'exponential'

scale: ParΓ‘metro Ξ² = 1/Ξ» (def: 1)
type: 'float' | 'int'

'lognormal'

mean: Media del logaritmo ΞΌ (def: 0)
std: Desv. estΓ‘ndar log Οƒ (def: 1)
Ideal para salarios y precios.

'poisson'

lam: Lambda Ξ» β€” tasa esperada de eventos (def: 1)
Siempre genera enteros.

'binomial'

n: NΓΊmero de ensayos (def: 1)
p: Probabilidad de Γ©xito (def: 0.5)
Con n=1 genera 0s y 1s.

'categorical'

choices: Lista de categorΓ­as (requerido)
SelecciΓ³n uniforme aleatoria.
No usa type ni round.

Ejemplo Completo β€” Dataset de Empleados
Todas las distribuciones combinadas Β· guardado en CSV

Ejemplo que usa las 7 distribuciones disponibles para generar un dataset realista de recursos humanos.

Python β€” Ejemplo completo con todas las distribuciones
from statslibx.datasets import generate_dataset
from statslibx import DescriptiveStats, Preprocessing

schema = {
    # DistribuciΓ³n normal β†’ edad de empleados
    'edad': {
        'dist': 'normal',
        'mean': 35, 'std': 10,
        'type': 'int', 'round': 0
    },
    # DistribuciΓ³n log-normal β†’ salarios (siempre positivos, sesgo derecho)
    'salario': {
        'dist': 'lognormal',
        'mean': 10.5, 'std': 0.5,
        'type': 'float', 'round': 2
    },
    # DistribuciΓ³n exponencial β†’ aΓ±os de experiencia
    'experiencia_anos': {
        'dist': 'exponential',
        'scale': 6,
        'type': 'float', 'round': 1
    },
    # DistribuciΓ³n uniforme β†’ calificaciΓ³n de desempeΓ±o (1.0 a 5.0)
    'calificacion': {
        'dist': 'uniform',
        'low': 1.0, 'high': 5.0,
        'type': 'float', 'round': 1
    },
    # DistribuciΓ³n Poisson β†’ nΓΊmero de proyectos completados
    'proyectos_completados': {
        'dist': 'poisson',
        'lam': 8,
        'type': 'int'
    },
    # DistribuciΓ³n binomial (n=1) β†’ variable binaria activo/inactivo
    'activo': {
        'dist': 'binomial',
        'n': 1, 'p': 0.88,
        'type': 'int'
    },
    # DistribuciΓ³n categΓ³rica β†’ departamento
    'departamento': {
        'dist': 'categorical',
        'choices': ['Marketing', 'Ventas', 'IT', 'RRHH', 'Finanzas', 'Operaciones']
    },
    # DistribuciΓ³n categΓ³rica β†’ nivel de educaciΓ³n
    'educacion': {
        'dist': 'categorical',
        'choices': ['Bachiller', 'Tecnico', 'Universitario', 'Magister', 'Doctorado']
    }
}

# Generar dataset reproducible de 1000 empleados
df = generate_dataset(
    n_rows=1000,
    schema=schema,
    seed=42,
    save=True,
    filename="empleados_rrhh"
)

print(f"Shape: {df.shape}")
print(df.dtypes)
print(df.head())

# AnΓ‘lisis inmediato con DescriptiveStats
ds = DescriptiveStats(df)
print(ds.summary())

# Revisar calidad con Preprocessing
pp = Preprocessing(df)
print(pp.data_quality())
Python β€” Generar con X, y para machine learning
from statslibx.datasets import generate_dataset, load_dataset

# 1. Generar y guardar
schema_ml = {
    'feature_1': {'dist': 'normal',   'mean': 0, 'std': 1,   'type': 'float', 'round': 4},
    'feature_2': {'dist': 'uniform',  'low': -2, 'high': 2,  'type': 'float', 'round': 4},
    'feature_3': {'dist': 'exponential', 'scale': 1,         'type': 'float', 'round': 4},
    'target':    {'dist': 'binomial', 'n': 1, 'p': 0.5,      'type': 'int'},
}

generate_dataset(n_rows=500, schema=schema_ml, seed=7, save=True, filename="ml_dataset")

# 2. Recargar como (X, y)
X, y = load_dataset(
    "ml_dataset.csv",
    return_X_y=(['feature_1', 'feature_2', 'feature_3'], 'target')
)
print(f"X shape: {X.shape}")   # (500, 3)
print(f"y shape: {y.shape}")   # (500,)
Tip: Combina generate_dataset() con Preprocessing para practicar pipelines completos de limpieza, o con DescriptiveStats e InferentialStats para exploraciΓ³n estadΓ­stica controlada con datos reproducibles.