Java'da Veri Temizleme
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;
// 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());
Satır sayısı: 290
Sütun sayısı: 6
Sütun adları: [Books, Authors, Language, First_Published, Sales_in_millions]
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
// 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);
Dil dağılımı:
| Language | Count |
|------------|-------|
| English | 210 |
| French | 10 |
| Chinese | 6 |
| Portuguese | 1 |
| Spanish | 3 |
| German | 6 |
| Italian | 5 |
// İ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");
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
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());
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