5 Exploration et nettoyage de base
Au menu :
- Tris
- Facettes
- Initiation aux expressions régulières
- Modification isolée ou d’un ensemble de valeurs
- Regroupement de valeurs proches
- Suppression de lignes et de colonnes
- Détection et suppression de doublons
- Suppression des espaces superflus
- Changement de casse
- Conversion dans un autre type
- Navigation dans l’historique
5.1 Découverte de l’espace de travail
Activité :
Combien de lignes fait le fichier? Combien de ligne peut-on voir au maximum? Affichez les dernières lignes puis revenez aux premières lignes.
Peut-on voir toutes les colonnes?
5.2 Les types de données
Comparaison des projet importés depuis les fichier CSV et XSLX :
- Colonne nbpages du fichier exo1_csv
- Colonne nbpages du projet exo1_xslx
Explication :
La grille de données peut contenir 4 types de valeurs principales :
- Texte (en noir, aligné à gauche)
- Nombre (en vert, aligné à droite)
- Date (en vert, aligné à droite)
- Booléen (en vert, aligné à droite)
Ainsi que deux valeurs spéciales, qui ne peuvent pas être saisies manuellement :
- “null” (absence de toute information, normalement invisibles, mais peuvent être affichées en gris après activation du menu Toutes > )
- “erreurs” (en rouge), créées par certaines formules si une option est activée dans l’éditeur de formules)
Important : une même colonne peut contenir différents types de valeurs (contrairement à un dataset en R par exemple).
5.4 Réordonner, supprimer, renommer des colonnes
Activité :
Déplacer la colonne “date” d’une position vers la gauche
1re solution : sur la colonne souhaitée, menu
:2e solution (pratique pour déplacer ou supprimer plusieurs colonnes) : 1re colonne Toutes, menu
5.5 Trier ses données
Activité :
Constat : la 1re colonne cote n’est pas triée.
Trier les données en fonction des valeurs de la colonne cote (options par défaut : ordre alphabétique, sans tenir compte des majuscules)
Le tri est temporaire. Comment s’en rendre compte?
- Réponse?
Les lignes ont gardé leur numéro d’origine
On peut établir des critères de tris supplémentaires en appliquant le tri à une 2e ou 3e colonne avant de de retrier de façon permanente, mais ça n’aurait pas d’intérêt pour notre fichier.
Appliquer le tri de façon permanente
- Réponse?
Cliquer sur “Sort” > “Retrier les lignes de manière permanente”
5.6 Filtrer ses données
Les filtres s’appliquent colonne par colonne et permettent :
- d’explorer les données;
- de limiter les autres opérations (export, nouveaux filtres, facettes, modifications groupées)aux données sélectionnées.
Ils sont volatiles et ne sont pas enregistrés avec le projet.
Activité :
Combien de lignes comprennent “carte postale” dans leur description ?
Filtrer le fichier pour afficher les lignes dont la colonne description contient le mot “carte postale”. Combien de lignes sont concernées?
- Réponse?
4
Combien de lignes ne comprennent pas “carte postale” en description mais comprennent “1887” en “date” ?
- Réponse?
Inverser le filtre et ajouter un nouveau filtre sur la date
1 ligne
Idem en élargissant à toute la décennie 1880 ?
- Réponse?
Remplacer 1888 par 188 dans le filtre
11 lignes
Idem en considérant uniquement 1887 et 1888. Utilisez une expression rationnelle (=expression régulière) dans le filtre date.
Une expression régulière est une chaîne de caractères décrivant au moyen d’une syntaxe spéciale plusieurs chaînes de caractères possibles. Cf. https://regex101.com
Kit de survie :
ab -> a suivi de b
a. -> a suivi de n'importe quel caractère
\n -> saut de ligne
\t -> tabulation
\s -> espace, tabulation ou saut de ligne
a[cfbde] -> a suivi de b ou c ou d ou e ou f (classe de caractères)
a[b-f] -> idem
a[^cfbde] -> n'importe quel caractère sauf b,c,d,e,f
a[^b-f] -> n'importe quel caractère sauf b,c,d,e,f
a(bc|ef) -> a suivi de bc ou ef (groupes)
? -> cherche 0 ou 1 fois le caractère, la classe ou le groupe qui précède
+ -> cherche 1 fois ou plus le caractère, la classe ou le groupe qui précède
* -> cherche 0, 1 fois ou plus le caractère, la classe ou le groupe qui précède
{3,6} -> cherche 3 à 6 fois ou plus le caractère, la classe ou le groupe qui précède
{3} -> cherche 3 fois le caractère, la classe ou le groupe qui précède
- Réponse
Utiliser une expression régulière : 188[78]
6 lignes
Supprimer le filtre sur la description, et conserver celui sur les dates. Toutes les dates sont elles comprises entre 1800 et 1999?
- Réponse
Utiliser une expression régulière : 1[89][0-9]{2}
51 lignes
Inversion : 2 lignes sans date, 2 dates “inconnues”, 2 entêtes, 6 lignes vides
Supprimer le filtre
5.7 Remplacer ou modifier des valeurs
5.7.1 Modification manuelle d’une cellule unique
Bouton edit
visible au survol : modifier et appliquer à la cellule
Important : les modifications isolées sont enregistrées dans l’historique et peuvent être “rejouées”, mais ne sont pas exportables.
5.7.2 Modification de toutes les cellules identiques d’une colonne
Même bouton, mais cliquer sur “Appliquer à toutes les cellules identiques”.
Important : Dans ce cas l’opération est exportable avec le reste de l’historique.
Activité :
Remplacer toutes les valeurs vides par “inconnu” dans la colonne date
5.7.3 Remplacer une chaîne ou un motif
menu
Activité :
Remplacer toutes les valeurs de “-” par “/” dans la colonne date
- Réponse
Chercher : -
Remplacer par : /
Remplacer en une opération “lot1”, “lot2” et “lot3” par une valeur vide "" dans la colonne cote
- Réponse
Chercher : lot[1-3]
Cocher la case pour utiliser les expressions régulières
Remplacer par : laisser vide
5.8 Annuler ou rejouer un traitement
Historique permettant d’annuler (« défaire ») ou rejouer (« refaire) les traitements de manière indéfinie
Limites de l’historique :
- n’enregistre pas les modifications manuelles des cellules;
- n’enregistre pas les facettes ni les tris;
- en cas de retour en arrière jusqu’à une opération N, puis d’ajout de nouvelles opérations, perte de l’historique des opérations réalisées initialement après N.
Activité
Annuler puis rejouer les dernières opérations
5.9 Appliquer des facettes sur les colonnes de données
Une facette permet de lister toutes les valeurs distinctes contenues dans une colonne, et de sélectionner les lignes contenant une valeur donnée dans cette colonne.
La combinaison de facettes portant sur une même colonne ou plusieurs colonnes permet de préciser la sélection.
Les facettes sont utiles pour avoir un aperçu synthétique des données, repérer des anomalies, isoler des valeurs à modifier, modifier globalement un codage…
Par défaut, seuls les 2000 premiers choix sont affichés. S’il y en a plus, OpenRefine propose d’augmenter cette limite, ou de n’afficher que les choix les plus fréquents (« facette par nombre de choix »). Le choix reste mémorisé lors des utilisations ultérieures. On peut relever le seuil à 100000 sans problème (si mémoire suffisante).
5.9.1 Premier type de facette : facettes « textuelles »
Elles portent sur le contenu textuel brut des cellules (conversion automatique en texte des nombres, dates et booléens)
Menu
Activité
Afficher les facettes textuelles correspondant au contenu de la colonne langue
- Réponse?
Repérer les anomalies apparentes.
- Réponse?
3 valeurs différentes pour le français (“français” / “fre” / “fre”); 2 valeurs “langue” ; 2 valeurs vides (blank)
Les options d’une facette
Comment harmoniser la valeur en “fre” (en restant dans le volet facettes)?
- Réponse?
Cliquer sur la facette “français” puis sur “éditer” et remplacer la valeur par “fre”
Répéter l’opération avec la facette “fre”
Les données du projet ont été modifiées
Comment sont classées les facettes? Peut-on en modifier l’ordre?
Après harmonisation, quelles sont les deux manière de sélectionner les lignes qui ne contiennent pas “fre”?
- Réponse?
Sélectionner “fre” et inverser la sélection
ou bien sélectionner (blank) et (langue)
Ajouter une nouvelle facette sur la colonne description, classer les résultats par compte et sélectionner la valeur la plus fréquente. Quel est l’effet sur la facette par langue?
- Réponse?
La facette par langue est recalculée sur les 8 lignes concernées.
On peut donc combiner différentes facettes.
Supprimer les deux facettes.
A noter : Si plusieurs facettes sont sélectionnées, on ne peut pas directement remplacer leur valeur par une nouvelle en passant par le volet facettes ou le menu “edit”. Mais c’est possible avec une transformation personnalisée (voir plus loin)
5.9.2 Autres types de facettes sur les colonnes
- Facettes numériques, chronologiques, en nuage de point : suppose d’avoir des données reconnues par OpenRefine comme des dates ou des nombres (pas le cas dans notre exemple)
- Facettes courantes : plusieurs options souvent utiles:
- par mot
- par doublons
- par longueur de texte
- par “blanc” (valeur vide ou null)
- par valeur vide
- par null
- par erreur
- Facettes personnalisées : utilisation du langage GREL
Activité
Utiliser une facette pour compter le nombre de lignes vides et non vides dans la colonne description.
- Réponse?
Facettes personnalisée > par valeur vide.
false (non vide) : 27
true (vide) : 34
Utiliser une facette personnalisée pour vérifier si la colonne “cote” ne contient que des valeurs uniques.
- Réponse?
Non: 12PDR_E_COR01_013 répété
Attention, la détection ne prend pas en compte les variantes de majuscules : 12PDR_e_COR01_013 n’est pas repéré comme doublon
A partir de la colonne auteur, appliquez une facette personnalisée « par mots » (Les valeurs sont découpées en suite de caractères séparés par des espaces)
Quel intérêt peut avoir l’opération?
- Réponse?
Utile pour analyser des cellules comprenant des valeurs répétées ou dissociables en plusieurs éléments (ici : nom + prénom + date), ou compter les mots les plus utilisés dans une colonne.
Peut-on modifier une des valeurs affichées par cette facette ?
- Réponse?
Non
Cette facette pourrait-elle permettre de séparer les différents sujets de la colonne “sujets” ?
- Réponse?
Non car ils sont séparés par un ; et non un espace.
Il faut utiliser une facette personnalisée à la main.
5.10 Appliquer des facettes sur l’ensemble d’une ligne
Le menu ‘Toutes’ permet d’appliquer des facettes à l’ensemble d’une ligne.
5.10.1 Repérer les lignes complètement vides
Menu Toutes > Facette > Facette par valeur vide
Trouve-t-on des valeurs vides? Pourquoi ?
- Réponse?
Non. Une opération précédente a ajouté “inconnu” dans les colonnes date des lignes vides.
Modifier une ligne comprenant une valeur dans une seule colonne pour qu’elle devienne vide.
Retester la facette et vérifier que la ligne est repérée.
5.10.2 Les facettes par étoile et par marques
Remarque : visuellement les “marques” sont en fait des drapeaux.
Les étoiles et marques ont le même usage et le même fonctionnement : elles permettent de signaler une ligne pour réaliser d’autres opérations manuelles ou automatisées.
Elles peuvent être activées :
- ligne à ligne en cliquant sur les symboles correspondant à gauche de chaque ligne
- via les menus de la colonne Toutes :
- Toutes >
- Toutes >
- Toutes > .
- Toutes > .
La 1re colonne Toutes permet de construire des facettes à partir des lignes au préalable signalées manuellement par une étoile ou une marque : Toutes > menu et
5.10.3 Repérer les colonnes comprenant des valeurs vides anormales
Menu Toutes > Facette > Valeur non vide par colonne
Comparer le nombre de valeurs non vides pour chaque colonne au nombre de lignes totales. Quelles colonnes seraient à examiner ?
- Réponse?
53 lignes totales
Mais 51 dans langues et nb_pages et 25 dans description
Isoler les lignes à corriger et faire les corrections à la main.
- Réponse?
Dans la facette, cliquer sur langue
Inverser la sélection
Corriger à la main
Idem pour nb_pages (en fonction du nb de fichiers dans la colonne fichier)
5.11 Supprimer des lignes
La suppression d’une ligne est possible via le menu de la colonne Toutes : .
Toutes les lignes affichées au moment de l’opération (en tenant compte des facettes et des filtres en cours) seront supprimées.
Pour supprimer des lignes sélectionnées en plusieurs étapes de traitement :
- à chaque étape, appliquer une facette “étoile” ou “marque” aux lignes voulues;
- appliquer une facette par étoile ou marque;
- supprimer toutes les lignes affichées.
Activité
Utiliser une facette personnalisée pour isoler les lignes dont la colonne cote ne fait pas 18 caractères.
- Réponse?
Facette personnalisée -> par longueur de texte
Sélection dans l’histogramme
8 lignes sélectionnées
Marquer d’une étoile les 2 premières et la dernière ligne ainsi sélectionnées puis supprimer la facette. Vérifiez que les étoiles sont toujours là.
Rajoutez à la main des étoiles sur les autres lignes de la fin du tableau qui ne contiennent aucune valeur (sauf dans la colonne date)
Faire une facette par étoile, sélectionnez toutes les lignes étoilées, et supprimez les.
- Réponse?
Toutes > Facette > par étoile
Toutes > Editer les lignes > supprimer les lignes correspondantes
Pour supprimer les doublons repérés dans les cotes, une étape supplémentaire est nécessaire (voir plus loin)
5.12 Regrouper des valeurs proches
Plusieurs alogrithmes permettent de repérer des chaînes de caractères proches et d’harmoniser leur contenu, soit pour l’ensemble d’une colonne soit pour des lignes sélectionnées avec une facette ou un filtre.
A partir d’une colonne : Editer les cellules > Grouper et éditer
A partir d’une facette : Sélectionner la facette > bouton “Grouper” en haut à droite.
Activité
Repérez les valeurs proches pour la colonne auteur puis grouper les résultats en utilisant les différentes méthodes proposées.
Pour chaque doublon repéré, cliquer sur une forme pour choisir la forme retenue ou pour la modifier.
Sélectionner les groupes à fusionner un par un ou bien tout sélectionner.
1re méthode par défaut par empreinte
2e méthode par plus proche voisin
Le nettoyage est-il complet (vérifier en construisant une facette) ? Corriger à la main au besoin, en conservant la forme la plus précise.
- Réponse?
De LaCroix (Camille) n’est pas repéré, car trop éloigné de De La Croix, Camille (1831-1911)
Vérifiez si les colonnes “sujet”, description“,”Fonds" et “destinataire” nécessitent le même traitement et corrigez les au besoin.
Détail des algorithmes
Attention! Dans certains cas ces algorithmes peuvent faire des rapprochements non pertinents (ex: deux numéros de téléphones peuvent légitimement être très semblables…) Et ils ne peuvent pas rapprocher toutes les formes souhaitées (ex : TVA = Taxe sur la valeur ajoutée…)
- Méthodes de collision de clé : rapides mais basiques
“Condensent” chaque valeur sous forme d’une “clé” et compare les clés au lieu de comparer les valeurs de manière détaillée.
- Méthodes plus proches voisins : plus élaborées mais plus lentes
Baisser le paramètre « taille de bloc » pour améliorer la détection (attention risque de ralentissement !
5.13 Changer la casse
Activité
La colonne cote comprend un mélange anormal de majuscules et de minuscules. Corrigez la.
- Réponse?
Editer les cellules > Transformations courantes > En majuscules
5.14 Supprimer les espaces superflus
Activité
Supprimez les espaces superflus (espaces au début et à la fin de chaque cellule, espaces redoublés) dans la colonne “fichier et page”
- Réponse?
Editer les cellules > Transformations courantes > Supprimer les espaces de début et fin
Editer les cellules > Transformations courantes > Rassembler les espaces consécutifs
5.15 Convertir dans un autre type de données
Activité
Transformez en type “nombre” le contenu de la colonne nbpages (opération inutile si les données venaient d’un fichier XLSX).
Notez que l’opération échoue pour certaines lignes. Comment corriger les données pour l’éviter ?
- Réponse?
Editer les cellules > Remplacer
Remplaçant tout les caractères non numériques par ""
Expression régulière : [^0-9]
Relancer la transformation
5.16 Vider complètement une colonne
Activité
Remplacez le contenu de la colonne cote par des valeurs null.
Annulez l’opération.
5.17 Vider les valeurs répétées sur plusieurs lignes
“Vider” des valeurs répétées peut être nécessaire pour d’autres opérations :
- Supprimer des doublons
- Créer des « entrées » regroupant plusieurs lignes
Activité
Si vous n’avez pas trié la colonne cote, triez la de façon permanente, puis videz les valeurs répétées dans cette colonne. Elles seront remplacées par des valeurs null.
- Réponse?
Editer les cellules > Vider les valeurs répétées dans les cellules consécutives
5.18 Lignes et entrées
5.18.1 Principes
Dans OpenRefine, une ou plusieurs lignes peuvent être regroupées en “entrées” (record).
Travailler avec des entrées permet des traitements avancés.
L’option “Voir en lignes / entrées” en haut à gauche de la grille de données permet d’afficher les données en prenant en compte les lignes (choix par défaut) ou les entrées.
Le regroupement en entrées est conditionné par le contenu de la 1re colonne :
- valeur non nulle -> nouvelle entrée commençant avec cette ligne;
- valeur nulle (“null” ou chaîne vide) -> ajout de la ligne à l’entrée précédente.
Exemple :
Attention : le lien entre lignes et entrées est très ténu. Si les colonnes sont déplacées ou le fichier retrié, le regroupement disparaît!
5.18.2 Création d’entrées
Pour grouper plusieurs lignes dans une entrée, certaines cellules de la 1re colonnes doivent être vides lors de l’import ou vidées dans OpenRefine :
- en supprimant les valeurs répétées;
- par une édition manuelle appliquée à toutes les valeurs similaires;
- avec une formule.
Autre possibilité : déplacer en 1re position une autre colonne contenant des valeurs vides.
Attention : une édition manuelle appliquée à une seule cellule ne crée pas d’entrée.
Activité :
Pour traiter les doublons de cote, créez des entrées sur la colonne <span “or-col”>cote :
- basculer l’affichage en mode “lignes”;
- vider les valeurs répétées sur plusieurs lignes.
Résultat en mode lignes :
Basculer en mode entrées : 1 entrée de 3 ligne a été créée
5.18.3 Prise en compte des entrées lors d’opérations de vidage/remplissage
Si le mode entrée est activé, le vidage et le remplissage de valeurs consécutives s’applique entrée par entrée.
Activité
Après avoir créé une entrée de plusieurs lignes, passez en mode ligne en mode ligne réalisez une opération de vidage des valeurs répétées dans la colonne <span “or-col”>auteur.
Observez le résultat.
Annulez l’opération, puis passez en mode “entrée” et réalisez la même opération.
Observez le résultat.
Annulez l’opération.
Attention : Ce fonctionnement est activé même si chaque entrée ne compte qu’une seule ligne
5.19 Remplir les valeurs vides consécutives
Activité
En mode “lignes”, remplissez les valeurs vides consécutives de la colonne cote.
Annulez l’opération.
En mode “lignes”, remplissez les valeurs vides consécutives de la colonne description.
Annulez l’opération.
Répétez l’opération en mode “entrées”.
Comment expliquer la différence ?
Attention : Le “remplissage” est symétrique du “vidage” mais le résultat d’un “vidage” suivi d’un “remplissage” peut corrompre les données si des valeurs vides préexistaient.
Ex : données source
col1 |
---|
A |
A |
(null) |
B |
B |
Vidage des valeurs répétées :
col1 |
---|
A |
(null) |
(null) |
B |
(null) |
Remplissage des valeurs vides :
col1 |
---|
A |
A |
A |
B |
B |
Pour éviter ce problème : commencer par remplacer les valeurs vides par une valeur fictive, puis la supprimer à la fin de l’opération.
5.20 Supprimer des doublons
A noter : on peut également utiliser la facette par doublons, mais elle ne permet pas d’isoler automatiquement une ligne à conserver pour chaque doublon.
Opérations pour supprimer des doublons :
- Se placer en mode lignes
- (Si la colonne contient des valeurs vides, les remplacer par une valeur temporaire)
- Trier de façon permanente la colonne servant de contrôle
- Vider les valeurs répétées dans cette colonne
- Appliquer une facette par valeur vide (blank)
- Sélectionner la facette “true”
- Supprimer toutes les lignes affichées
- (Si la colonne contenait des valeurs vides, remplacer la valeur temporaire par une valeur vide)
Si le contrôle doit prendre en compte plusieurs colonnes : créer une colonne temporaire contenant la concaténation des colonnes concernées.
Activité
Supprimez les lignes en double en utilisant les doublons dans la colonne cote comme critère.