Sütun filtreleme ve toplulaştırma

Java'da Veri Temizleme

Dennis Lee

Software Engineer

Kitap satış veri seti

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
Java'da Veri Temizleme

Filtreleme için koşullar tanımlama

import tech.tablesaw.api.Table;
import tech.tablesaw.selection.Selection;
Table books = Table.read().csv("bestsellers.csv");
// 70M üzeri satışlı kitaplar için koşul
Selection highSales = books.intColumn("Sales_in_Millions").isGreaterThan(70);

// İngilizce yazılan kitaplar için koşul Selection english = books.stringColumn("Language").isEqualTo("English");
// 1950 sonrası yayımlanan kitaplar için koşul Selection recentlyPublished = books.intColumn("First_Published").isGreaterThan(1950);
// Benzerleri: .isLessThan(), .isLessThanOrEqualTo(), .isGreaterThanOrEqualTo()
Java'da Veri Temizleme

Koşullara göre filtreleme

// Tek koşulu doğrudan kullanarak filtreleyin
books.where(books.intColumn("Sales_in_Millions").isGreaterThan(70));

// Önceden tanımlı Selection ile filtreleyin books.where(highSales);
// Birden çok koşulu .and() ile birleştirin Table popular = books.where(highSales) // Sales > 70M .and(english) // English dili .and(recentlyPublished); // 1950 sonrası .sortDescendingOn("Sales_in_Millions"); // Sales_in_Millions’a göre sırala System.out.println("Modern, yüksek gelirli İngilizce kitaplar:\n"); System.out.println(modern.select("Books", "First_Published", "Total_Revenue"));
Java'da Veri Temizleme

Koşullara göre filtreleme: çıktı

Modern, yüksek gelirli İngilizce kitaplar:

| 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            |
Java'da Veri Temizleme

Ortalamayla özetleme

// Ortalama hesaplama fonksiyonunu içe aktarın
import static tech.tablesaw.aggregate.AggregateFunctions.mean;
Table overallMean = books.summarize("Sales_in_Millions", mean).apply();
System.out.println("\nGenel ortalama satış: \n" + overallMean);
Genel ortalama satış:

| Mean [Sales_in_Millions]  |
|---------------------------|
|        73.03225806451614  |
Java'da Veri Temizleme

Gruplara göre toplulaştırma

// Her dil grubu için ortalama satışları hesaplayın (örn. English, French vb.)
Table salesByLanguage = 
        books.summarize("Sales_in_Millions", mean)  // Ortalamaları hesapla

.by("Language"); // Dile göre grupla // İlk 5 dil grubunu göster System.out.println("Dile göre ortalama satışlar:\n"); System.out.println(salesByLanguage.first(5));
Java'da Veri Temizleme

Gruplara göre toplulaştırma: çıktı

Dile göre ortalama satışlar:

| Language   | Mean [Sales_in_Millions] |
|------------|--------------------------|
| English    | 69.96                    |
| French     | 200.0                    |
| Chinese    | 100.0                    |
| Portuguese | 65.0                     |
| Spanish    | 50.0                     |
Java'da Veri Temizleme

Filtreleme ve toplulaştırmayı birleştirme

import static tech.tablesaw.aggregate.AggregateFunctions.sum;
// Dile göre filtreleyip satışları özetleyin
Table bestsellersByLanguage = books
        // 1950 sonrası kitapları seçin
        .where(books.intColumn("First_Published").isGreaterThan(1950))

// Toplam satışları hesaplayın .summarize("Sales_in_Millions", sum)
// Sonuçları dile göre gruplayın .by("Language"); System.out.println("Modern çoksatanlar (1950 sonrası) – dile göre:\n"); System.out.println(bestsellersByLanguage);
Java'da Veri Temizleme

Filtreleme ve toplulaştırma: çıktı

Modern çoksatanlar (1950 sonrası) – dile göre:

| Language   | Sum [Sales_in_Millions] |
|------------|-------------------------|
| English    | 1071                    |
| Portuguese | 65                      |
| Spanish    | 50                      |
| Italian    | 50                      |
Java'da Veri Temizleme

Hepsini bir araya getirme

books.where(sales.isGreaterThan(150)); // Tek koşul ile temel filtreleme
books.where(highSales.and(english)); // Birden çok koşul - .and() ile birleştirin
// Temel toplulaştırma
books.summarize("Sales_in_Millions", mean)       // Ortalamaları hesapla
    .by("Language");                             // Dile göre grupla
// Birleşik işlemler
books.where(books.intColumn("First_Published").isGreaterThan(1950)) // Filtrele
    .summarize("Sales_in_Millions", mean) // Sonra özetle
    .by("Language"); // En son grupla
Java'da Veri Temizleme

Hadi pratik yapalım!

Java'da Veri Temizleme

Preparing Video For Download...