Validation des plages

Nettoyer des données en Java

Dennis Lee

Software Engineer

Jeu de données de ventes de chocolat

  • Travailler avec un jeu de données de ventes de chocolat tout au long du chapitre
  • Modifier certaines colonnes (montant, date) pour illustrer la validation des données

 

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
Nettoyer des données en Java

Pourquoi valider les plages

// 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]
Nettoyer des données en Java

Trouver les bornes de la plage

// 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
Nettoyer des données en Java

Définir une plage valide

// 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"); } }
Nettoyer des données en Java

Définir une plage valide : sorties

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
Nettoyer des données en Java

Définir des catégories de plage

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);
Nettoyer des données en Java

Vérifier les catégories de plage

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");
    }
}
Nettoyer des données en Java

Vérifier les catégories de plage : sorties

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
Nettoyer des données en Java

Valider des dates

// 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 2022

for (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); }
Nettoyer des données en Java

Valider des dates : sorties

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
Nettoyer des données en Java

Récapitulatif

  • Import clé : org.apache.commons.lang3.Range
  • Obtenir min et max : Collections.min(salesAmounts), Collections.max(salesAmounts)
  • Définir des catégories : Range.between(0.0, 5000.0)
  • Vérifier les catégories : lowSales.contains(amount)
  • Valider des dates : saleDate.isAfter(startDate), saleDate.isBefore(endDate)
Nettoyer des données en Java

Passons à la pratique !

Nettoyer des données en Java

Preparing Video For Download...