Datenbereinigung 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.selection.Selection;
Table books = Table.read().csv("bestsellers.csv"); // Bedingung: Bücher mit > 70 Mio. Verkäufen Selection highSales = books.intColumn("Sales_in_Millions").isGreaterThan(70);// Bedingung: Bücher auf Englisch Selection english = books.stringColumn("Language").isEqualTo("English");// Bedingung: nach 1950 veröffentlicht Selection recentlyPublished = books.intColumn("First_Published").isGreaterThan(1950);// Ähnlich: .isLessThan(), .isLessThanOrEqualTo(), .isGreaterThanOrEqualTo()
// Mit einer einzelnen Bedingung direkt filtern books.where(books.intColumn("Sales_in_Millions").isGreaterThan(70));// Mit vordefinierter Selection filtern books.where(highSales);// Mehrere Bedingungen mit .and() kombinieren Table popular = books.where(highSales) // Verkäufe > 70 Mio. .and(english) // Sprache Englisch .and(recentlyPublished); // Nach 1950 .sortDescendingOn("Sales_in_Millions"); // Nach Sales_in_Millions sortieren System.out.println("Moderne umsatzstarke englische Bücher:\n"); System.out.println(modern.select("Books", "First_Published", "Total_Revenue"));
Moderne umsatzstarke englische Bücher:
| Book | Sales_in_Millions | First_Published |
|------------------------------------------|-------------------|-----------------|
| Harry Potter and the Philosopher's Stone | 120 | 1997 |
| The Da Vinci Code | 80 | 2003 |
| Harry Potter and the Chamber of Secrets | 77 | 1998 |
// Mittelwertfunktion importieren
import static tech.tablesaw.aggregate.AggregateFunctions.mean;
Table overallMean = books.summarize("Sales_in_Millions", mean).apply();
System.out.println("\nDurchschnittliche Gesamtverkäufe: \n" + overallMean);
Durchschnittliche Gesamtverkäufe:
| Mean [Sales_in_Millions] |
|---------------------------|
| 73.03225806451614 |
// Durchschnittsverkäufe je Sprache berechnen (z. B. Englisch, Französisch) Table salesByLanguage = books.summarize("Sales_in_Millions", mean) // Mittelwerte berechnen.by("Language"); // Nach Sprache gruppieren // Erste 5 Sprachgruppen anzeigen System.out.println("Durchschnittliche Verkäufe nach Sprache:\n"); System.out.println(salesByLanguage.first(5));
Durchschnittliche Verkäufe nach Sprache:
| Language | Mean [Sales_in_Millions] |
|------------|--------------------------|
| English | 69.96 |
| French | 200.0 |
| Chinese | 100.0 |
| Portuguese | 65.0 |
| Spanish | 50.0 |
import static tech.tablesaw.aggregate.AggregateFunctions.sum;
// Filtern und Verkäufe nach Sprache zusammenfassen Table bestsellersByLanguage = books // Bücher nach 1950 auswählen .where(books.intColumn("First_Published").isGreaterThan(1950))// Verkäufe summieren .summarize("Sales_in_Millions", sum)// Ergebnisse nach Sprache gruppieren .by("Language"); System.out.println("Moderne Bestseller (nach 1950) nach Sprache:\n"); System.out.println(bestsellersByLanguage);
Moderne Bestseller (nach 1950) nach Sprache:
| Language | Sum [Sales_in_Millions] |
|------------|-------------------------|
| English | 1071 |
| Portuguese | 65 |
| Spanish | 50 |
| Italian | 50 |
books.where(sales.isGreaterThan(150)); // Einfaches Filtern mit einer Bedingung
books.where(highSales.and(english)); // Mehrere Bedingungen mit .and() kombinieren
// Einfache Aggregation
books.summarize("Sales_in_Millions", mean) // Mittelwerte berechnen
.by("Language"); // Nach Sprache gruppieren
// Kombinierte Operationen
books.where(books.intColumn("First_Published").isGreaterThan(1950)) // Filtern
.summarize("Sales_in_Millions", mean) // Dann zusammenfassen
.by("Language"); // Schließlich gruppieren
Datenbereinigung in Java