Data opschonen in Java
Dennis Lee
Software Engineer
| Books | Authors | Language | First_Published | Sales_in_Millions | Average_Price |
|---|---|---|---|---|---|
| A Tale of Two Cities | Charles Dickens | English | 1859 | 200.0 | 12.99 |
| The Little Prince (Le Petit Prince) | Antoine de Saint-Exupéry | French | 1943 | 200.0 | 15.50 |
| Harry Potter and the Philosopher's Stone | J. K. Rowling | English | 1997 | 120.0 | 19.99 |
| And Then There Were None | Agatha Christie | English | 1939 | 100.0 | 14.95 |
import tech.tablesaw.api.Table;
import tech.tablesaw.api.DoubleColumn;
import tech.tablesaw.api.StringColumn;
// Laad CSV in een Tablesaw-tabel
Table books = Table.read().csv("bestsellers.csv");
// Basisinfo: aantal rijen, kolommen, kolomnamen
System.out.println("Aantal rijen: " + books.rowCount());
System.out.println("Aantal kolommen: " + books.columnCount());
System.out.println("Kolomnamen: " + books.columnNames());
Aantal rijen: 290
Aantal kolommen: 6
Kolomnamen: [Books, Authors, Language, First_Published, Sales_in_millions]
for (String columnName : books.columnNames()) {// Haal kolom op en tel ontbrekende waarden (nulls) int missing = books.column(columnName).countMissing();System.out.println(columnName + " ontbrekende waarden: " + missing); }
Books ontbrekende waarden: 0
Authors ontbrekende waarden: 0
Language ontbrekende waarden: 0
First_Published ontbrekende waarden: 0
Sales_in_millions ontbrekende waarden: 2
Average_Price ontbrekende waarden: 0
// countBy() maakt een nieuwe tabel met unieke waarden en hun frequenties
Table languageCounts = books.countBy("Language");
System.out.println("Taalverdeling:\n");
// Print geformatteerde tabel met elke taal en het aantal
System.out.println(languageCounts);
Taalverdeling:
| Taal | Aantal |
|------------|--------|
| English | 210 |
| French | 10 |
| Chinese | 6 |
| Portuguese | 1 |
| Spanish | 3 |
| German | 6 |
| Italian | 5 |
// Haal numerieke kolom als DoubleColumn op voor statistiek DoubleColumn sales = books.doubleColumn("Sales_in_millions");System.out.println("Verkoopstatistieken (miljoen exemplaren):\n"); // Kleinste waarde System.out.println("Min. verkoop: " + sales.min() + " miljoen"); // Grootste waarde System.out.println("Max. verkoop: " + sales.max() + " miljoen");// Gemiddelde System.out.println("Gem. verkoop: " + sales.mean() + " miljoen"); // Spreiding (standaarddeviatie) System.out.println("Standaarddev.: " + sales.standardDeviation() + " miljoen");
Verkoopstatistieken (miljoen exemplaren):
Min. verkoop: 10.0 miljoen
Max. verkoop: 600.0 miljoen
Gem. verkoop: 49.996875 miljoen
Standaarddev.: 64.6846320839116 miljoen
System.out.printf("Rijen: %d, Kolommen: %s", books.rowCount(), books.columnCount());
for (String colName : books.columnNames()) // Voor elke kolom
System.out.println(books.column(colName).countMissing()); // Aantal null-waarden
StringColumn language = books.stringColumn("Language"); // Tekstkolom
Table langCounts = books.countBy("Language"); // Categorieën tellen
// Numerieke statistieken berekenen
DoubleColumn sales = books.doubleColumn("Sales_in_Millions"); // Numerieke kolom
System.out.printf("Gem.: %.1f miljoen, Min.: %.1f miljoen, Max.: %.1f miljoen",
sales.mean(), sales.min(), sales.max());
Rijen: 290, Kolommen: 6
Books ontbrekende waarden: 0
Authors ontbrekende waarden: 0
| Taal | Aantal |
|------------|--------|
| English | 210 |
| French | 10 |
Gem.: 50.0 miljoen, Min.: 10.0 miljoen, Max.: 600.0 miljoen
Data opschonen in Java