Data Enrichment / Enriquecimiento de datos

PowerShell Advanced Topic #12
Extract Email Domain For Segmentation

Create a new domain column from email addresses to support segmentation, validation, reporting, and institutional analysis.

Cybersecurity & Production Environment Warning

This exercise is intended for learning and testing purposes only. Do not execute scripts against production environments, business-critical systems, enterprise repositories, payroll files, HR records, student records, patient records, or shared network locations without proper authorization, testing, backups, change-control procedures, and compliance with your organization's cybersecurity policies.

Advertencia de ciberseguridad y ambiente de producción

Este ejercicio es únicamente para aprendizaje y pruebas. No ejecute scripts contra ambientes de producción, sistemas críticos, repositorios empresariales, nóminas, expedientes de empleados, estudiantes, pacientes o carpetas compartidas sin autorización formal, pruebas previas, respaldos, control de cambios y cumplimiento de las políticas de ciberseguridad de su organización.

Objective

Extract the domain that appears after the @ symbol in an email address and create a new column that can be used for grouping, filtering, and validation.

Create a domain column
Segment users by institution
Detect personal email domains
Prepare datasets for Power BI

Objetivo

Extraer el dominio que aparece después del símbolo @ en una dirección de correo y crear una nueva columna útil para agrupar, filtrar y validar.

Crear una columna de dominio
Segmentar usuarios por institución
Detectar correos personales
Preparar datasets para Power BI

Synthetic Data

Example input file: C:\Data\Employees.csv

Datos sintéticos

Archivo de entrada de ejemplo: C:\Data\Employees.csv

EmployeeIDNameEmail
1001Juan Carballojuan@cityofhialeah.gov
1002Maria Perezmaria@gmail.com
1003Carlos Gomezcarlos@miamidade.gov
1004Ana Ruizana@fiu.edu
1005Pedro Martinezpedro@cityofhialeah.gov

Base Example

Split the email address after the @ symbol and return the domain as a new calculated field.

Ejemplo base

Cortar la dirección de correo después del símbolo @ y devolver el dominio como un nuevo campo calculado.

$datos | Select-Object *,
@{
    Name = "Dominio"
    Expression = { $_.Email.Split('@')[1] }
}

Complete Script

Script completo

# PowerShell Advanced Topic 12
# Extract email domain for segmentation

$inputPath  = "C:\Data\Employees.csv"
$outputPath = "C:\Data\Employees_With_Domain.csv"

$datos = Import-Csv $inputPath

$resultado = $datos | Select-Object *,
@{
    Name = "Dominio"
    Expression = {
        if ($_.Email -match "@") {
            $_.Email.Split('@')[1].ToLower()
        }
        else {
            "INVALID_EMAIL"
        }
    }
}

$resultado | Export-Csv $outputPath -NoTypeInformation

Write-Host "Process completed."
Write-Host "Output file created:" $outputPath

Expected Result

Resultado esperado

EmployeeIDNameEmailDominio
1001Juan Carballojuan@cityofhialeah.govcityofhialeah.gov
1002Maria Perezmaria@gmail.comgmail.com
1003Carlos Gomezcarlos@miamidade.govmiamidade.gov
1004Ana Ruizana@fiu.edufiu.edu
1005Pedro Martinezpedro@cityofhialeah.govcityofhialeah.gov

Real-World Applications

  • Group employees, students, or users by organization.
  • Detect personal email domains in institutional datasets.
  • Prepare domain-level reports in Power BI.
  • Support access audits and user provisioning reviews.
  • Validate allowed corporate or educational domains.

Aplicaciones reales

  • Agrupar empleados, estudiantes o usuarios por organización.
  • Detectar dominios personales en datasets institucionales.
  • Preparar reportes por dominio en Power BI.
  • Apoyar auditorías de acceso y revisión de usuarios.
  • Validar dominios corporativos o educativos autorizados.

Recommendations

  • Convert domains to lowercase before grouping.
  • Validate email format before extracting the domain.
  • Maintain an authorized domain reference list.
  • Flag external or unexpected domains for review.
  • Document all transformation rules used in the process.

Recomendaciones

  • Convertir los dominios a minúsculas antes de agrupar.
  • Validar el formato del correo antes de extraer el dominio.
  • Mantener una lista de dominios autorizados.
  • Marcar dominios externos o inesperados para revisión.
  • Documentar todas las reglas de transformación utilizadas.