Le data processing ou le traitement des données permet de collecter et de manipuler des données pour retirer des informations significatives. Aujourd’hui toutes les entreprises passent par une étape de « data processing ». Dès lors qu’on travaille avec des clients, patients, partenaires etc. on a des informations qu’on doit retenir sur ces entités afin d’assurer le bon fonctionnement du système.
Comment utiliser le Data Processing ?
Ce qu’il faut savoir c’est que, pour réaliser cette étape il n’y a pas un guide « step by step » qui marche toujours. Néanmoins, sur internet on peut trouver beaucoup de contenu qui présente des étapes clés par lesquelles on peut passer ; mais ces étapes dépendent très fortement du type de données et des cas d’utilisation, qui sont très spécifiques à l’entreprise et à ses propres questionnements.
Pour réaliser du data processing de qualité il faut d’abord commencer par se poser les bonnes questions et être prêt à les adapter au fur et à mesure. À partir de là, on peut poser quelques hypothèses et essayer de les tester.
Le data processing est un processus qui a lieu tout le temps et ce n’est pas une phase bien définie qui commence et se termine à un moment précis. On pourrait comparer cette action avec les poumons d’un être vivant, qui a besoin tout le temps de respirer afin de continuer à fonctionner.
L’histoire du Data Processing
Le data processing existait déjà bien avant l’apparition des ordinateurs. Avant, on organisait les données dans des registres. Il y avait un protocole à respecter c’est-à-dire que les données devait respecter une certaine structure, être saisies à un certaine heure etc.
Par exemple, pour faire une recherche d’un mot sur un document entier il fallait passer par la section « Index terminologique » qui permettait de chercher un mot clé par page. Aujourd’hui on sait qu’un simple CTRL+F permet de réaliser cette opération très rapidement.
Avec l’avancement technologique on a pu faciliter ces tâches et à l’heure actuelle on a des outils informatiques pour stocker (MySql, ou dans le cloud) et traiter l’information (Jupyter Notebooks adaptés pour le langage python, RStudio adaptés pour le langage R, Spark pour gérer le big data).
Mise en pratique
Supposons qu’on est une entreprise de commerce électronique. Vous pouvez faire appel aux services d’un système de gestion de la relation client (CRM) qui vous permettra entre autres de récupérer de l’informations sur vos clients et sur vos services. Les données collectées doivent être en accord avec les lois en vigueur (à savoir qu'elles peuvent changer au fil du temps). En général, les données sur les clients peuvent également être issues de questionnaires, observations directes ou bien provenant des entreprises tiers ou tout simplement données issues de l’open source.
Une fois que l’on a accès à ces données qui peuvent provenir de diverses sources, on passe par une étape de data cleaning et de manipulation de données. À ce stade on va donner une structure aux données : traitement de NAs (c’est-à-dire des valeurs manquantes ou en anglais : Not Available ) et outliers, gestion des duplicatas, différenciation des variables numériques et catégorielles, mise au bon format des dates, création de nouvelles colonnes etc. Cette partie est souvent la plus longue et elle est très importante pour la suite de l’analyse.
Data processing sur des données issues d’une boutique de e-commerce
Dans la suite de cet article, on va faire du python dans un Jupyter Notebook en passant par des étapes classiques de data processing d’un dataset qui contient des données sur des produits disponibles en ligne le 1er octobre 2019 (le dataset a été récupéré sur Kaggle, à savoir que ce dataset est très grand et pour cet exemple il a été tronqué). En python c’est la librairie pandas qui est la plus adaptée pour la manipulation et l’analyse de données.
Chaque ligne du fichier représente un événement. Tous les événements sont liés aux produits et aux utilisateurs. Il existe différents types d’événements.
produits.head() permet d’avoir un aperçu du dataset produits :
Avant de se lancer dans une analyse, on doit comprendre la signification de différentes variables (colonnes).
- event_time représente la date et l’heure à laquelle l’événement a eu lieu
- event_type peut être de plusieurs types view, cart, remove_from_cart, purchase. Cette colonne représente le type de l’événement : consulté, ajouté dans le panier, retirer du panier, produit acheté
- product_id correspond à l’ID du produit
- brand correspond à la marque du produit (si présente)
- price est le prix du produit
2) En pandas on peut vérifier le type de variables (colonnes) :
On remarque que toutes les colonnes sont du type « object », ici en l'occurrence il s’agit de chaînes de caractères. Pour pouvoir travailler avec ces données on doit tenir compte de leur spécificité et les mettre dans un format adapté.
On ne change pas le format des colonnes event_type et brand car leurs éléments représentent bien des chaînes de caractères.
Quand on fait du Data Processing il faut également gérer les valeurs manquantes appelées des NA (Not Available). Selon le use case, on peut les remplacer par différentes valeurs (moyenne, médiane etc.) ou carrément supprimer la ligne qui contient cette valeur manquante.
Comme par la suite on souhaiterait créer un outil qui s’appuie sur les prix de certains produits, on fait le choix de supprimer les lignes qui ont des valeurs manquantes sur la colonne « prix » à l’aide de la commande suivante :
• produits[«price"].dropna()
# si on avait voulu remplacer les NAs avec une valeur x on aurait pu utiliser fillna(x)
Pour finir, supposons que le manager vous a demandé de créer un outil pour retirer la moyenne des prix pour un type d’événement et une marque donnée. La fonction extraire_moyenne prend deux variables comme argument, filtre selon ces variables et retourne la moyenne de prix parmi ces produits.
En exécutant la cellule suivante,
On peut voir que le 01/10/19, le prix moyen des produits qui ont été achetés pour la marque «Xiaomi» était de 29.51.
L’outil peut être complexifié en s’appuyant sur différents points d’analyse. On peut également envisager la création d’un dashboard qui permettrait une interface interactive avec l’utilisateur.
Cet article vous a plu ? Vous pouvez en apprendre plus sur les méthodes de data processing en devenant analyste en cybersécurité.