Técnicas avanzadas de manipulación de datos

Importación de datos en Java

Anthony Markham

VP Quant Developer

Eliminación y adición de columnas

  • Eliminar columnas innecesarias con .drop()
  • Añadir columnas precomputadas o categóricas con .addColumns()
    • ¡El número de filas debe ser el mismo! ❗
// Eliminar columnas específicas
Table cleaned = dataTable.drop("TempID", "Notes");

// Añadir dos nuevas columnas StringColumn statusCol = StringColumn.create("Status", "Active", "Inactive", "Active"); IntColumn priorityCol = IntColumn.create("Priority", 1, 2, 3); Table enhanced = dataTable.addColumns(statusCol, priorityCol);
Importación de datos en Java

Filtrado de filas con .dropWhere()

  • Elimina filas coincidentes
  • Usa Selection para criterios de filtrado
// Crear una condición de selección
Selection outliers = dataTable.doubleColumn("Value")
    .isLessThan(lowerBound)
    .or(dataTable.doubleColumn("Value")
        .isGreaterThan(upperBound));

// Eliminar filas que cumplen la condición Table cleanedData = dataTable.dropWhere(outliers);
Importación de datos en Java

Conteo de filas

  • .rowCount() - cuenta el número de filas en una tabla
// Comparar conteo de filas
System.out.println("Filas originales: " + dataTable.rowCount());
System.out.println("Después de eliminar outliers: " + 
    cleanedData.rowCount());
Filas originales: 100
Después de eliminar outliers: 95
Importación de datos en Java

Filtrado booleano

  • Soporta métodos and, or, not
// Filtrado booleano complejo
Selection techHighPaid = dataTable.stringColumn("Department")
    .isEqualTo("Technology")
    .and(dataTable.doubleColumn("Salary")
        .isGreaterThan(100000));

// Selección inversa (NOT) Selection nonTechOrLowPaid = techHighPaid.not();
Importación de datos en Java

Transformación con .map()

  • Aplica una función para transformar valores de columna
  • Soporta expresiones lambda, haciendo el código fácil de leer
// Transformar una columna completa con una función predefinida
StringColumn upperNames = dataTable.stringColumn("Name").map(s -> s.toUpperCase());
// Transformar valores en una columna
DoubleColumn prices = dataTable.doubleColumn("Price");
DoubleColumn discounted = prices.map(price -> price * 0.9);

// Asignar un nombre y añadir una columna discounted.setName("DiscountedPrice"); Table withDiscounts = dataTable.addColumns(discounted);
Importación de datos en Java

Resumen

  • .drop() - Eliminar columnas de la tabla
  • .dropWhere() - Eliminar filas que cumplen una condición
  • .addColumns() - Añadir nuevas columnas a la tabla
  • .map() - Transformar valores de columna
// Métodos avanzados de manipulación
 dataTable.drop("TemporaryID");              
dataTable.dropWhere(selection);             
dataTable.addColumns(newColumn);            
doubleCol.map(value -> value * 2);
Importación de datos en Java

¡Vamos a practicar!

Importación de datos en Java

Preparing Video For Download...