BaşlayınÜcretsiz başlayın

Gelişmiş filtreleme ve analiz

TechCorp, liderlik gelişimi için yüksek potansiyelli çalışanları belirlemek istiyor: 30 yaşın altındaki ve şimdiden Mid veya Senior düzey maaş alan çalışanlar. Bunun için aykırı değerleri kaldırman, sayısal verilerden kategorik maaş dereceleri oluşturman ve sonra birden fazla filtre koşulunu birleştirmen gerekiyor. Bu teknikler, basit filtrelerin cevaplayamadığı gerçek iş sorularını ele alır.

Table, Selection ve StringColumn sınıfları senin için içe aktarıldı.

Bu egzersiz, kursun bir parçasıdır

Java'da Veri İçe Aktarma

Kursa Göz Atın

Egzersiz talimatları

  • Aykırı değerleri kaldır (maaş < $40K veya > $250K).
  • Filtrelemeden sonra kaldırılan satırları say.
  • Maaşları "Junior", "Mid" ve "Senior" derecelerine eşle.
  • 30 yaş altındaki "Mid"/"Senior" dereceleri için filtrele.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

public class DataExploration {
    public static void main(String[] args) {
    
        // Start with the high earners table from previous exercises
        Table employees = Table.read().csv("employees.csv");

        // Remove outliers (salary < $40K or > $250K)
        Selection outliers = employees.intColumn("Salary").isLessThan(____)
            .or(employees.intColumn("Salary").isGreaterThan(____));
        Table cleanedData = employees.____(outliers);
        
        // Count rows removed after filtering
        System.out.println("Employees after removing outliers: " + (employees.____() - cleanedData.____()));
        
        // Map salaries to Junior, Mid, and Senior grades
		StringColumn salaryGroup = cleanedData.intColumn("Salary").map(
    	salary -> {
        	if (salary < 100000) return "____";
        	else if (salary < 200000) return "Mid";
        	else if (salary >= 200000) return "____";
        	else return "Error";
    	},StringColumn::create).setName("SalaryGrade");
        cleanedData = cleanedData.addColumns(salaryGroup);

        // Filter for Mid/Senior grades under age 30
        Selection highPotential = cleanedData.stringColumn("____")
            .isEqualTo("Mid")
            .or(cleanedData.stringColumn("SalaryGrade").isEqualTo("Senior"))
            .and(cleanedData.intColumn("____").isLessThan(30));

        Table highPotentialEmployees = cleanedData.where(____);
        
        System.out.println(highPotentialEmployees.rowCount());
        System.out.println(highPotentialEmployees.first(5));

	}
}
Kodu Düzenle ve Çalıştır