Datasets

Modulo para cargar datasets internos y generar datos sinteticos con distribuciones estadisticas configurables. Compatible con pandas como backend.

Descripcion general

El modulo datasets de ViewX proporciona:

  • Datasets clasicos listos para usar (iris, penguins, titanic, etc.)
  • Carga flexible desde paquete o ruta local
  • Soporte para CSV, Parquet, Excel y JSON
  • Generacion de datos sinteticos con 7+ distribuciones
  • Opcion return_X_y para machine learning

Datasets disponibles

🌸
iris.csv
150 filas, 5 columnas
🐧
penguins.csv
344 filas, 7 columnas
🚢
titanic.csv
891 filas, 12 columnas
📈
sp500_companies.csv
Empresas S&P 500
📚
course_completion.csv
Datos educativos
🍫
Cocoa_Bubbles_...xlsx
Inversiones cacao

load_dataset()

load_dataset(name, backend="pandas", return_X_y=None, sep=",")
Funcion generica para cargar cualquier dataset. Busca primero en el paquete viewx.datasets, luego en ruta local.
name str - Nombre del archivo (con extension)
backend str, default="pandas" - Backend de DataFrame
return_X_y tuple, optional - Tupla (X_columns, y_column) para retornar arrays numpy
sep str, default="," - Separador para CSV
Python
from viewx.datasets import load_dataset

# Cargar como DataFrame
df = load_dataset("iris.csv")

# Cargar como arrays X, y para ML
X, y = load_dataset(
    "iris.csv",
    return_X_y=(
        ["sepal_length", "sepal_width", "petal_length", "petal_width"],
        "species"
    )
)

# Cargar archivo local
df = load_dataset("mis_datos.csv")

load_iris()

load_iris(backend="pandas", return_X_y=None) → DataFrame | tuple
Atajo para cargar el dataset Iris. 150 muestras de 3 especies de flores con medidas de sepalo y petalo.
Python
from viewx.datasets import load_iris

df = load_iris()
print(df.head())

load_penguins()

load_penguins(backend="pandas", return_X_y=None) → DataFrame | tuple
Atajo para cargar el dataset Penguins. 344 pinguinos de 3 especies con medidas corporales.

generate_dataset()

generate_dataset(n_rows, schema, seed=None, save=False, filename=None)
Genera un dataset sintetico con distribuciones estadisticas configurables por columna.
n_rows int - Numero de filas a generar
schema dict - Diccionario con configuracion por columna
seed int, optional - Semilla para reproducibilidad
save bool, default=False - Guardar como CSV
filename str, optional - Nombre del archivo (sin extension)

Distribuciones soportadas

normal
uniform
exponential
lognormal
poisson
binomial
categorical

Cada distribucion acepta parametros especificos en el schema:

  • normal: mean, std
  • uniform: low, high
  • exponential: scale
  • lognormal: mean, std (del log)
  • poisson: lam (lambda)
  • binomial: n, p
  • categorical: choices (lista de opciones)

Schema de ejemplo

Python
from viewx.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
    },
    "departamento": {
        "dist": "categorical",
        "choices": ["Ventas", "IT", "Marketing", "RRHH"]
    },
    "visitas_mensuales": {
        "dist": "poisson",
        "lam": 15,
        "type": "int"
    },
    "tasa_conversion": {
        "dist": "uniform",
        "low": 0.01,
        "high": 0.15,
        "type": "float",
        "round": 4
    }
}

df = generate_dataset(
    n_rows=1000,
    schema=schema,
    seed=42,
    save=True,
    filename="datos_sinteticos"
)

print(df.head())
print(df.describe())