Nettoyer des données en Java
Dennis Lee
Software Engineer
| Commercial | Pays | Produit | Date | Montant | Boîtes expédiées |
|---|---|---|---|---|---|
| James Rudeforth | Royaume-Uni | Mint Chip Choco | 4-Jan-22 | 5 320 $ | 180 |
| Van Tuxwell | Inde | 85% Dark Bars | 1-Aug-22 | 7 896 $ | 94 |
| Gigi Bohling | Inde | Peanut Butter Cubes | 7-Jul-22 | 4 501 $ | 91 |
| Jan Morforth | Australie | Peanut Butter Cubes | 27-Apr-22 | 12 726 $ | 342 |
| Jehu Fischer | Royaume-Uni | Peanut Butter Cubes | 24-Feb-22 | 13 685 $ | 184 |
// Nous avons extrait ces montants et dates du jeu de données
List<Double> salesAmounts = Arrays.asList(5320.0, 7896.0, 4501.0,
12726.0, 13685.0);
List<String> saleDates = Arrays.asList("4-Jan-22", "1-Aug-22", "7-Jul-22",
"27-Apr-22", "24-Feb-22");
System.out.println("Sales amounts: " + salesAmounts);
System.out.println("Sale dates: " + saleDates);
Sales amounts: [5320.0, 7896.0, 4501.0, 12726.0, 13685.0]
Sale dates: [4-Jan-22, 1-Aug-22, 7-Jul-22, 27-Apr-22, 24-Feb-22]
// Obtenir le montant minimal
Double minSale = Collections.min(salesAmounts);
// Obtenir le montant maximal
Double maxSale = Collections.max(salesAmounts);
System.out.println("Range: $" + minSale + " - $" + maxSale);
Range: $4501.0 - $13685.0
// Le montant ne doit pas être inférieur à 0,0 Double lowerThreshold = 0.0; // Le montant ne doit pas dépasser 15 000,0 Double upperThreshold = 15000.0;for (Double amount : salesAmounts) { // Vérifier que chaque montant est dans la plage if (amount >= lowerThreshold && amount <= upperThreshold) { System.out.println(amount + " is within range"); } }
5320.0 is within range
7896.0 is within range
4501.0 is within range
12726.0 is within range
13685.0 is within range
import org.apache.commons.lang3.Range;
// Catégorie ventes faibles : 0 $ - 5 000 $
Range<Double> lowSales = Range.between(0.0, 5000.0);
// Catégorie ventes moyennes : 5 000 $ - 10 000 $
Range<Double> mediumSales = Range.between(5000.0, 10000.0);
// Catégorie ventes élevées : 10 000 $ - 15 000 $
Range<Double> highSales = Range.between(10000.0, 15000.0);
for (Double amount : salesAmounts) {
if (lowSales.contains(amount)) { // Montant dans la plage basse ?
System.out.println("$" + amount + " - Ventes faibles");
} else if (mediumSales.contains(amount)) { // Montant dans la plage moyenne ?
System.out.println("$" + amount + " - Ventes moyennes");
} else if (highSales.contains(amount)) { // Montant dans la plage haute ?
System.out.println("$" + amount + " - Ventes élevées");
} else { // Montant hors plage attendue ?
System.out.println("$" + amount + " - Hors plage attendue");
}
}
Catégorisation des ventes :
$5320.0 - Ventes moyennes
$7896.0 - Ventes moyennes
$4501.0 - Ventes faibles
$12726.0 - Ventes élevées
$13685.0 - Ventes élevées
// d-MMM-yy : jour du mois (d), mois abrégé (MMM), année sur deux chiffres (yy) DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d-MMM-yy"); LocalDate startDate = LocalDate.of(2022, 1, 1); // Début 2022 LocalDate endDate = LocalDate.of(2022, 12, 31); // Fin 2022for (String dateStr : saleDates) { LocalDate saleDate = LocalDate.parse(dateStr, formatter);// Dates valides après startDate et avant endDate boolean isValid = saleDate.isAfter(startDate) && saleDate.isBefore(endDate); System.out.println(dateStr + " is valid: " + isValid); }
4-Jan-22 is valid: true
1-Aug-22 is valid: true
7-Jul-22 is valid: true
27-Apr-22 is valid: true
24-Feb-22 is valid: true
org.apache.commons.lang3.RangeCollections.min(salesAmounts), Collections.max(salesAmounts)Range.between(0.0, 5000.0)lowSales.contains(amount)saleDate.isAfter(startDate), saleDate.isBefore(endDate)Nettoyer des données en Java