Java'da Veri Temizleme
Dennis Lee
Software Engineer
| Kitaplar | Yazarlar | Dil | İlk_Yayın | Satış_Milyon | Ortalama_Fiyat |
|---|---|---|---|---|---|
| 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.StringColumn;
import tech.tablesaw.api.DoubleColumn;
Table books = Table.read().csv("bestsellers.csv"); for (String colName : books.columnNames()) {// Sütun adını ve türünü yazdır System.out.println(colName + ": " + books.column(colName).type()); }
Books: STRING
Authors: STRING
Language: STRING
First_Published: INTEGER
Sales_in_Millions: INTEGER
Average_Price: DOUBLE
// Tablesaw bunu INTEGER olarak çıkardığı için IntColumn'u DoubleColumn'a dönüştürün
DoubleColumn sales = books.intColumn("Sales_in_Millions")
.asDoubleColumn();
System.out.println("Dönüşüm sonrası sales sütununun veri türü: " + sales.type());
Dönüşüm sonrası sales sütununun veri türü: DOUBLE
// DoubleColumn'u IntColumn'a dönüştürmek de mümkündür
IntColumn salesAsInt = sales.asIntColumn();
DoubleColumn averagePrice = books.doubleColumn("Average_Price"); // İki sütunu çarparak toplam geliri hesaplayın DoubleColumn totalRevenue = sales.multiply(averagePrice).setName("Total_Revenue_Millions");books.addColumns(totalRevenue); System.out.println("\nİki sütunu çarpma: Satış × Fiyat = Gelir"); System.out.println(books.selectColumns("Books", "Sales_in_Millions", "Average_Price", "Total_Revenue_Millions") .first(4).print());
İki sütunu çarpma: Satış × Fiyat = Gelir
| Kitaplar | Satış_ | Ortalama_ | Toplam_Gelir_ |
| | Milyon | Fiyat | Milyon |
|-------------------------------------|------------|-----------|----------------|
| A Tale of Two Cities | 200 | 12.99 | 2598 |
| The Little Prince (Le Petit Prince) | 200 | 15.50 | 3100 |
| Harry Potter and | 120 | 19.99 | 2398.80 |
| the Philosopher's Stone | | | |
| And Then There Were None | 100 | 14.95 | 1495 |
\\(.*\\) deseni parantezleri eşleştirir\\( // Açılış parantezini eşleştir (\\ ile kaçırılmış)
.* // Herhangi bir karakteri (.) sıfır veya daha çok (*) eşleştir
\\) // Kapanış parantezini eşleştir (\\ ile kaçırılmış)
// Başlıklardan parantez içi çevirileri kaldırın
StringColumn titlesNoParentheses = titles
// Her başlık için parantezleri ve çevresindeki boşlukları kaldırın
.map(t -> t.replaceAll("\\(.*\\)", "").trim())
// Yeni sütun adını ayarlayın
.setName("Parantezsiz Başlıklar");
System.out.println("Orijinal: " + titles.get(1)); // İlk öğeyi alın
System.out.println("Temizlenmiş: " + titlesNoParentheses.get(1));
Orijinal: The Little Prince (Le Petit Prince)
Temizlenmiş: The Little Prince
// Parantezleri kaldırma ve küçük harfe çevirme işlemlerini birleştirin StringColumn titlesCombinedCleaning = titles.map(t -> t.replaceAll("\\(.*\\)", "") // Parantezleri kaldır.trim() // Çevresel boşluğu kaldır.toLowerCase()) // Küçük harfe çevir .setName("Clean_Titles_Combined"); // Sütun adını ayarla System.out.println("Orijinal başlık: " + titles.get(1)); System.out.println("Temizlik sonrası başlık: " + titlesCombinedCleaning.get(1));
Orijinal başlık: The Little Prince (Le Petit Prince)
Temizlik sonrası başlık: the little prince
books.column(colName).type(); // Sütun türünü al
books.intColumn("Sales_in_Millions").asDoubleColumn(); // Tür dönüştür
DoubleColumn totalRevenue = sales.multiply(averagePrice) // Sütunları çarp
.setName("Total_Revenue_Millions"); // Yeni sütunu adlandır
titles.map(String::toLowerCase) // Küçük harfe çevir
.setName("Lowercase_Titles"); // Yeni sütunu adlandır
titles.map(t -> t.replaceAll("\\(.*\\)", "").trim()) // Parantezleri kaldır
.setName("Parantezsiz Başlıklar"); // Yeni sütunu adlandır
Java'da Veri Temizleme