MulaiMulai sekarang secara gratis

Penyaringan lanjutan dan analisis

TechCorp ingin mengidentifikasi karyawan berpotensi tinggi untuk pengembangan kepemimpinan: karyawan muda (di bawah 30 tahun) yang sudah bergaji tingkat Mid atau Senior. Ini memerlukan penghapusan outlier, pembuatan kategori tingkat gaji dari data numerik, lalu menggabungkan beberapa kondisi filter. Teknik-teknik ini menjawab pertanyaan bisnis nyata yang tidak dapat ditangani oleh filter sederhana.

Kelas Table, Selection, dan StringColumn telah diimpor untuk Anda.

Latihan ini adalah bagian dari kursus

Mengimpor Data di Java

Lihat Kursus

Petunjuk latihan

  • Hapus outlier (gaji < $40K atau > $250K).
  • Hitung jumlah baris yang dihapus setelah pemfilteran.
  • Peta gaji ke tingkat "Junior", "Mid", dan "Senior".
  • Filter untuk tingkat "Mid"/"Senior" dengan usia di bawah 30 tahun.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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));

	}
}
Edit dan Jalankan Kode