Struktury danych w Tablesaw

Importowanie danych w Javie

Anthony Markham

VP Quant Developer

Podstawowe struktury danych

  • Tabela: Główny kontener (jak DataFrame)
Table employees = Table.create("Employees");
  • Kolumna: Przechowuje wartości jednego typu
StringColumn nameCol = StringColumn.create("Name");
  • Wiersz: Reprezentuje pojedynczy rekord
Row firstRow = employees.row(0);
Importowanie danych w Javie

Metody tabeli

String tableName = employees.name();
employees
// Row and column counts
int rowCount = employees.rowCount();
int columnCount = employees.columnCount();
1000
5
Importowanie danych w Javie

Typy kolumn

  • Silne typowanie = każda kolumna ma stały typ danych
    • Poprawia wydajność i ułatwia debugowanie
  • Przykłady:
    • StringColumn – dane tekstowe
    • IntColumn, DoubleColumn – wartości liczbowe
    • BooleanColumn – wartości prawda/fałsz
    • Dane szeregów czasowych:
      • DateColumn – daty kalendarzowe (2024-03-05)
      • DateTimeColumn – data i godzina (2024-03-05T14:32)
Importowanie danych w Javie

Operacje na typach kolumn

  • Każdy typ udostępnia wyspecjalizowane operacje
// Using .mean() on DoubleColumn
DoubleColumn salary = employees.column("Salary");
double averageSalary = salary.mean();
Importowanie danych w Javie

Dostęp do danych

// Get a specific column
StringColumn names = employees.stringColumn("Name");

// Get a general column names = employees.column("Name");
// Get a value from a column String firstPerson = names.get(0);
// Get an entire row Row firstRow = employees.row(0);
// Get a value from a row double salary = firstRow.getDouble("Salary");
Importowanie danych w Javie

Selekcje

  • Zbiór indeksów wierszy spełniających warunek
  • Przykłady:
    • .isGreaterThan(), .isLessThan()
    • .isEqualTo()
    • .isAfter()

$$

// Create a selection of rows
Selection highEarners = employees.doubleColumn("Salary")
    .isGreaterThan(70000);
Importowanie danych w Javie

Filtrowanie według selekcji

// Create a selection of rows
Selection highEarners = employees.doubleColumn("Salary")
    .isGreaterThan(70000);


// Apply selection to get a filtered table Table highPaidEmployees = employees.where(highEarners);

$$

$$

  • .where() zwraca nową tabelę
Importowanie danych w Javie

Operacje logiczne

  • Łączenie selekcji za pomocą .and() i .or()
Selection recentHires = employees.dateColumn("HireDate")
    .isAfter(LocalDate.of(2020, 1, 1));

Selection highPaidRecent = highEarners.and(recentHires);
Importowanie danych w Javie

Czas na ćwiczenia!

Importowanie danych w Javie

Preparing Video For Download...