UD7 · Gestión integral: seguridad, sostenibilidad y ética | MP03 · Desarrollo de componentes para sistemas de ML
Protección de datos — Técnicas de anonimización en ML
import pandas as pd
import hashlib
from faker import Faker
fake = Faker("es_ES")
def anonimizar_dataset(df: pd.DataFrame) -> pd.DataFrame:
"""
Aplica técnicas de anonimización para eliminar datos de identificación directa.
"""
df = df.copy()
if "nif" in df.columns:
df["nif"] = df["nif"].apply(
lambda x: hashlib.sha256(str(x).encode()).hexdigest()[:16]
)
if "edad" in df.columns:
df["grupo_edad"] = pd.cut(df["edad"],
bins=[0, 25, 35, 45, 55, 65, 100],
labels=["<25", "25-34", "35-44", "45-54", "55-64", "65+"])
df = df.drop(columns=["edad"])
columnas_a_eliminar = ["nombre", "apellidos", "email", "telefono", "direccion"]
df = df.drop(columns=[c for c in columnas_a_eliminar if c in df.columns])
return df