Tablesaw ile veri kalitesi değerlendirmesi

Java'da Veri Temizleme

Dennis Lee

Software Engineer

Kitap satışları 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

Verileri inceleme

import tech.tablesaw.api.Table;
import tech.tablesaw.api.DoubleColumn;
import tech.tablesaw.api.StringColumn;
// CSV dosyasını Tablesaw tablosuna yükleyin
Table books = Table.read().csv("bestsellers.csv");

// Temel tablo bilgileri: satır sayısı, sütun sayısı, sütun adları
System.out.println("Satır sayısı: " + books.rowCount());
System.out.println("Sütun sayısı: " + books.columnCount());
System.out.println("Sütun adları: " + books.columnNames());
Java'da Veri Temizleme

Verileri inceleme: çıktılar

Satır sayısı: 290
Sütun sayısı: 6
Sütun adları: [Books, Authors, Language, First_Published, Sales_in_millions]
Java'da Veri Temizleme

Eksik değerleri kontrol etme

for (String columnName : books.columnNames()) {

// Sütunu ada göre al ve o sütundaki eksik değerleri (null) say int missing = books.column(columnName).countMissing();
System.out.println(columnName + " eksik değer: " + missing); }
Books eksik değer: 0
Authors eksik değer: 0
Language eksik değer: 0
First_Published eksik değer: 0
Sales_in_millions eksik değer: 2
Average_Price eksik değer: 0
Java'da Veri Temizleme

Kategorik sütunları inceleme

// countBy() benzersiz değerler ve frekanslarıyla yeni bir tablo oluşturur
Table languageCounts = books.countBy("Language");

System.out.println("Dil dağılımı:\n");

// Her dili ve sayısını gösteren biçimli tabloyu yazdırır
System.out.println(languageCounts);
Java'da Veri Temizleme

Kategorik sütunları inceleme: çıktılar

Dil dağılımı:

| Language   | Count |
|------------|-------|
| English    | 210   |
| French     | 10    |
| Chinese    | 6     |
| Portuguese | 1     |
| Spanish    | 3     |
| German     | 6     |
| Italian    | 5     |
Java'da Veri Temizleme

Sayısal sütunları analiz etme

// İstatistiksel işlemler için sayısal sütunu DoubleColumn olarak alın
DoubleColumn sales = books.doubleColumn("Sales_in_millions");

System.out.println("Satış istatistikleri (milyon kopya):\n"); // Sütundaki en küçük değer System.out.println("En az satış: " + sales.min() + " milyon"); // Sütundaki en büyük değer System.out.println("En çok satış: " + sales.max() + " milyon");
// Tüm değerlerin ortalaması System.out.println("Ortalama satış: " + sales.mean() + " milyon"); // Dağılım ölçüsü (standart sapma) System.out.println("Std. sapma: " + sales.standardDeviation() + " milyon");
Java'da Veri Temizleme

Sayısal sütunları analiz etme: çıktılar

Satış istatistikleri (milyon kopya):

En az satış: 10.0 milyon
En çok satış: 600.0 milyon
Ortalama satış: 49.996875 milyon
Std. sapma: 64.6846320839116 milyon
Java'da Veri Temizleme

Hepsini bir araya getirme

System.out.printf("Satırlar: %d, Sütunlar: %s", books.rowCount(), books.columnCount());
for (String colName : books.columnNames()) // Her sütun için
    System.out.println(books.column(colName).countMissing()); // Null değerleri say
StringColumn language = books.stringColumn("Language"); // Metin sütununu al
Table langCounts = books.countBy("Language"); // Kategorileri say
// Sayısal istatistikleri hesapla
DoubleColumn sales = books.doubleColumn("Sales_in_Millions"); // Sayı sütununu al
System.out.printf("Ortalama: %.1f milyon, En az: %.1f milyon, En çok: %.1f milyon",
                  sales.mean(), sales.min(), sales.max());
Java'da Veri Temizleme

Hepsini bir araya getirme: çıktılar

Satırlar: 290, Sütunlar: 6
Books eksik değer: 0
Authors eksik değer: 0
| Language   | Count |
|------------|-------|
| English    | 210   |
| French     | 10    |
Ortalama: 50.0 milyon, En az: 10.0 milyon, En çok: 600.0 milyon
Java'da Veri Temizleme

Haydi pratik yapalım!

Java'da Veri Temizleme

Preparing Video For Download...