एडवांस्ड फ़िल्टरिंग और विश्लेषण
TechCorp नेतृत्व विकास के लिए उच्च-सम्भावना वाले कर्मचारियों की पहचान करना चाहती है: 30 वर्ष से कम उम्र के वे कर्मचारी जो पहले से Mid या Senior-लेवल का वेतन कमा रहे हैं. इसके लिए आउट्लायर हटाने, संख्यात्मक डेटा से श्रेणीबद्ध वेतन ग्रेड बनाने, और फिर कई फ़िल्टर कंडीशन को मिलाने की ज़रूरत है. ये तकनीकें ऐसे वास्तविक व्यावसायिक सवालों को संभालती हैं जिनका जवाब साधारण फ़िल्टर नहीं दे पाते.
Table, Selection, और StringColumn क्लास आपके लिए इम्पोर्ट कर दी गई हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Java में डेटा इम्पोर्ट करना
अभ्यास निर्देश
- आउट्लायर हटाएँ (salary < $40K या > $250K).
- फ़िल्टरिंग के बाद हटाई गई पंक्तियों की गिनती करें.
- वेतन को
"Junior","Mid", और"Senior"ग्रेड में मैप करें. - 30 वर्ष से कम उम्र के लिए
"Mid"/"Senior"ग्रेड फ़िल्टर करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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));
}
}