Comment nettoyer ses CSV ?
Adobe Stock
  • Gaëtan Evain
Temps de lecture estimé : 4 à 7 minutes

Article 2. Deuxième article de notre série sur les données LinkedIn : Gaëtan Evain nous explique comment établir un environnement de travail ainsi que quelques fonctions clés.

Comment exploiter mes informations LinkedIn ?

Avant de plonger dans l'exploration et l'exploitation de nos documents, il y a quelques étapes cruciales à ne pas négliger :

  • Étape 1 - Organiser un environnement de travail
    Avant toute chose, il est essentiel de mettre en place un environnement de travail organisé et efficace. Cela signifie choisir les bons outils, s'assurer que notre espace est ergonomique.
  • Étape 2 - Nettoyer les données
    Avant de pouvoir exploiter pleinement les informations contenues dans nos documents, un grand ménage s'impose. Il faut éliminer tout ce qui est superflu ou erroné, corriger les fautes et s'assurer que les données sont présentées de manière claire et cohérente. Cette étape peut sembler fastidieuse, mais elle est absolument vitale. Des données propres sont la clé d’une analyse sans accroc.
  • Étape 3 - Exploiter les données
    Notre environnement de travail est maintenant prêt. Nos données sont impeccables. C'est le moment de plonger dans le contenu, d'analyser les données, de tirer des conclusions et, finalement, d’ avancer dans notre projet.

Comment définir un environnement de travail ?

Le choix du bon environnement de travail est une étape cruciale.

Notre choix s'est porté sur Google Colab.

Pour une bonne raison : Colab fournit un environnement de travail en python, sur étagère, et conforme aux attentes des analystes de données, organisation du travail en notebook (jupyter), accès aux librairies python, possibilité de choisir la puissance de calcul associée (option payante), accès très simple aux données stockées sur votre drive.

En bref, Colab est un outil puissant et rapide à mettre en place. Il permet à plusieurs utilisateurs de travailler simultanément sans se soucier de l'installation de logiciels ou de la configuration matérielle.

Au préalable, les outils et bibliothèques nécessaires à notre travail doivent être prêts à l'emploi.

Voici donc les bibliothèques à importer et indispensables à notre projet : 

Pandas

Le couteau suisse pour la manipulation de données. Essentiel pour gérer nos fichiers au format CSV.

import pandas as pd

Google Drive

Pour accéder facilement à nos fichiers stockés dans le cloud, un atout non négligeable pour le travail collaboratif.

from google.colab import drive
drive.mount('/content/gdrive')

nltk (Natural Language Toolkit)

Une suite complète pour le traitement du langage naturel, parfaite pour la tokenisation et l'élimination des mots vides - ces petits mots qui, bien que nécessaires à la structure des phrases, portent peu d'information significative.

import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
nltk.download('stopwords')
nltk.download('punkt')

re (Expressions Régulières)

Pour filtrer et nettoyer nos textes avec précision.

import re

spacy

Nous passons ensuite à la vitesse supérieure avec SpaCy, une bibliothèque de traitement du langage naturel plus avancée, pour une analyse linguistique plus fine en français.

!python -m spacy download fr_core_news_md
import spacy
nlpFR = spacy.load('fr_core_news_md')

matplotlib

Pour visualiser nos données avec des graphiques éloquents.

import matplotlib.pyplot as plt

deep_translator

Un module pratique pour traduire automatiquement nos textes.

!pip install deep_translator
from deep_translator import GoogleTranslator

os

Enfin, un module pour naviguer aisément dans nos fichiers.

import os

Importation et préparation de nos données

Avec notre environnement désormais prêt, il est temps d'importer notre document au format CSV pour débuter l'exploration. Voici comment nous procédons :

DIR = '/content/gdrive/MyDrive/Nom_du_Projet'
file = os.path.join(DIR, 'Données_à_Analyser.csv')
df_Données_à_Analyser = pd.read_csv(file)

Et voilà ! Notre environnement de travail est configuré. Nos outils sont prêts. Et, nos données attendent sagement d'être analysées. Cette approche nous permet de commencer notre projet sur des bases solides.

Comment nettoyer notre document ?

Épurer votre DataFrame pour l'analyse

Avoir configuré notre environnement de travail et chargé nos données dans un notebook est un excellent début, mais ce n'est que la première étape. Maintenant, il est temps de nous assurer que nos données ne sont pas seulement présentes, mais réellement prêtes à être analysées et exploitées. Grâce à Pandas, notre fichier CSV a été métamorphosé en DataFrame prêt pour la manipulation. Mais avant de plonger dans l'analyse, une étape cruciale nous attend : le nettoyage de nos données.

clean_text

Pour que nos données soient impeccables, nous allons créer une fonction de nettoyage de texte, clean_text. Elle va transformer notre DataFrame en un trésor de données exploitables. Voici à quoi elle ressemble :

def clean_text(text, stopWords):

    text = re.sub(r'[^a-zA-Z0-9À-ÖØ-öø-ÿœ]', ' ', text).lower()
    words = text.split()
    filtered_words = [word for word in words if word not in stopWords]
    cleaned_text = ' '.join(filtered_words)

    return cleaned_text

Présentation de cette fonction, ligne par ligne :

  • Déclaration de la fonction : notre fonction clean_text prend deux paramètres : text, qui est le texte à nettoyer, et stopWords, notre collection de mots à ignorer.
  • Épuration et standardisation : nous utilisons une expression régulière pour éliminer tout ce qui n'est pas une lettre, un chiffre, ou un caractère spécial français, transformant ensuite tout en minuscules pour uniformiser le texte.
  • Séparation en mots : le texte nettoyé est ensuite divisé en mots individuels, nous permettant d'examiner chaque terme séparément.
  • Filtrage des mots vides : avec une compréhension de liste, nous filtrons les mots vides, ces petits mots omniprésents mais peu informatifs, ne gardant que le contenu riche en informations.
  • Reconstitution du texte : les mots restants sont ré-assemblés en une chaîne de caractères propre et épurée, prête pour l'analyse.

clean_dataframe

Pour appliquer cette fonction à l'ensemble du Dataframe nous allons utiliser une autre fonction que nous appellerons clean_dataframe.

def clean_dataframe(df, stopWords):
    return df.applymap(lambda x: clean_text(str(x), stopWords))

Décortiquons cette fonction :

  • Application à l'échelle du DataFrame : df.applymap() est une méthode Pandas qui applique une fonction à chaque élément individuel d'un DataFrame. C'est notre baguette magique pour toucher chaque coin et recoin de nos données.
  • Fonction lambda pour la flexibilité : à l'intérieur de applymap, nous utilisons une fonction lambda, une fonction anonyme en Python, qui prend comme argument x. Cet x représente chaque cellule individuelle de notre DataFrame. L'usage d'une fonction lambda ici nous offre une flexibilité remarquable, permettant d'appliquer notre nettoyage texte à texte, cellule par cellule.
  • Nettoyage textuel avec clean_text : la fonction lambda appelle clean_text, la fonction de nettoyage de texte que nous avons soigneusement élaborée. Elle transforme chaque x (nos données textuelles cellule par cellule) en chaîne de caractères avec str(x) et les nettoie en utilisant notre liste de stopWords. Cela signifie éliminer les mots inutiles, uniformiser la casse, et plus encore, pour chaque fragment de texte dans le DataFrame.
  • Retour transformé : ce processus est appliqué de manière exhaustive à travers le DataFrame, et le résultat est un DataFrame entièrement nettoyé, avec chaque cellule ayant subi un nettoyage approfondi.

Pourquoi nettoyer nos données ?

Le nettoyage de texte est une étape non négociable dans tout projet d'analyse de données. En retirant les irrégularités et les distractions, nous pouvons focaliser nos analyses sur les informations vraiment pertinentes, améliorant ainsi la précision de nos insights. De plus, en uniformisant le format de nos données, nous facilitons leur manipulation et leur interprétation.

Gaëtan EVAIN
Gaëtan EVAIN
Stagiaire chez Isitix en hiver 2024. Engagé dans une reconversion professionnelle en BTS SIO option SLAM grâce au GRETA. Sur LinkedIn