Vous êtes sur la page 1sur 14

Data Cleaning and Transformation

Data cleaning Introduction


Maintenant, commençons le prétraitement : La première étape consiste à nettoyer nos
données en traitant les valeurs manquantes.

En fait, certaines des raisons typiques pour lesquelles les données sont manquantes sont
que :

1. L’utilisateur a oublié de remplir un champ


2. Les données ont été perdues lors du transfert manuel à partir d’une base de données
héritée (à l’aide d’une technologie de base de données plus ancienne)

Mais comment faire ?


Nous commençons par

1. Recherche des valeurs manquantes ou incorrectes


2. Les rectifier en les modifiant ou en les supprimant

https://elitedatascience.com/data-cleaning

https://www.formpl.us/blog/data-cleaning

Pourquoi avons-nous besoin de nettoyer les données?


Une erreur courante est que les gens ont tendance à passer directement du chargement des
données à l’analyse. Ce n’est pas considéré comme une bonne pratique car nous
rencontrons généralement beaucoup de données qui ne sont pas nettoyées.

Nous devons donc d’abord prétraiter nos données en

1. Le nettoyer,
2. Le transformer
https://elitedatascience.com/data-cleaning

https://www.formpl.us/blog/data-cleaning

Valeurs manquantes
Les valeurs manquantes apparaissent sous la forme NaN dans un DataFrame, mais qu’est-ce
que cela signifie ? NaN = Pas un nombre
Voici à quoi ils ressemblent dans un DataFrame :

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3668100/
https://www.geeksforgeeks.org/working-with-missing-data-in-pandas/
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.isnull.html
https://moonbooks.org/Articles/How-to-filter-missing-data-NAN-or-NULL-values-in-a-pandas-
DataFrame-/

Recherche des valeurs manquantes


Une bonne façon d’avoir une idée rapide des données est de jeter un coup d’œil aux premières
lignes.
Voici comment le faire avec Pandas:
Si vous regardez de plus près, nous pouvons remarquer la présence de valeurs manquantes:
Recherche des valeurs manquantes : isnull()
Mais cela ne suffit pas, nous devrions chercher plus profondément en utilisant la fonction
isnull() directement sur une colonne qui indique la position des valeurs manquantes

Recherche des valeurs manquantes : isnull.sum()


Nous pouvons obtenir un résumé sur le nombre de valeurs manquantes sur chaque colonne:
En utilisant la commande isnull().sum()
Nous pouvons également obtenir le nombre total de valeurs manquantes dans le DataFrame à
l’aide de la commande suivante df.isnull().sum().sum()

Remarque:

Pour vérifier si une valeur est NaN : Nous devons utiliser la méthode isnull().

Suppression des valeurs manquantes (Dropping missing


values) : dropna
Maintenant que nous savons comment trouver les données manquantes, nous devons les gérer.

La première consiste simplement à les laisser tomber [drop](supprimer) en utilisant la


méthode dropna().
Alors comprenons-le
https://www.w3resource.com/pandas/dataframe/dataframe-dropna.php

https://pandas.pydata.org/pandas-docs/stable/reference/api/
pandas.DataFrame.dropna.html

dropna() Examples
Here’s some examples:

 Drop the columns where one of the elements are missing :

 Drop the columns where all its elements are missing values :

 Keep only the rows with two missing values maximum:

Mais parfois, supprimer des lignes ou des colonnes n’est pas vraiment une bonne idée car
nous allons perdre beaucoup de données sur cette ligne ou colonne. Alors, quelle est la
solution alternative ?

Remplacement des valeurs numériques manquantes


L’une des méthodes les plus couramment utilisées pour traiter les données manquantes est
Imputer les valeurs manquantes sur la base d’autres observationsDans le cas de valeurs
numériques: Nous pouvons utiliser la fonction fillna() pour remplacer les valeurs
manquantes de la colonne « Age » par:

 Mean:
 Median:

 Mode:

http://www.dailysmarty.com/posts/replacing-nan-cells-in-python-with-the-mean-
median-and-mode

https://vitalflux.com/pandas-impute-missing-values-mean-median-mode/

https://pandas.pydata.org/pandas-docs/stable/reference/api/
pandas.DataFrame.fillna.html

Remplacement des valeurs catégorielles manquantes


Dans le cas de valeurs catégorielles, nous pouvons remplacer les valeurs manquantes par la
valeur la plus fréquente en utilisant la fonction fillna().

http://www.dailysmarty.com/posts/replacing-nan-cells-in-python-with-
the-mean-median-and-mode
https://vitalflux.com/pandas-impute-missing-values-mean-median-mode/

https://pandas.pydata.org/pandas-docs/stable/reference/api/
pandas.DataFrame.fillna.html

Transformation des données : pourquoi ?


Essayons de récapituler ce que nous avons fait jusqu’à présent :Nous avons appris à :

1. Chargez le jeu de données dans notre fichier jupyter notebook.


2. Traitez les valeurs manquantes.

Maintenant, comme dernière étape du prétraitement, nous allons apprendre à le faire;

1. Transformer toutes les valeurs de type d’objet en valeurs numériques

Étant donné que la plupart des algorithmes d’apprentissage automatique et d’apprentissage


profond, sont basés sur des valeurs numériques, nous devons convertir toutes les données
en valeurs numériques.

https://www.talend.com/resources/data-transformation-defined/

THEN

Why do we need to convert categorical features to numerical features?

Because machine learning and deep leaning algorithms use numbers only.

Catégorique à numérique
new_data possède des caractéristiques de différents types : entiers et objets. Nous devons
savoir laquelle de ces caractéristiques d’objet est catégorique.
On note ici que le rôle ne peut prendre que 6 possibilités : la fonctionnalité de rôle est une
caractéristique catégorique :

https://levelup.gitconnected.com/converting-categorical-data-to-numerical-data-for-machine-learning-a-
workaround-327afacbbe84

Conclusion :

Categorical data are presented by: Object

Label encoder function


La première méthode consiste à convertir les modalités, les valeurs qu’une variable peut
prendre, de chaque variable catégorielle en un nombre. Nous pouvons :

 Do this by hand using a dictionary when we have 2 or 3 categories.


 Use the label encoder function in the sklearn library.
https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html

Discover Solutions

To transform categorical to numerical data, just we type:

LabelEncoder().fit_transform(variable_name)

Label Encoder Dictionary


This is how you encode your categorical features with a dictionary:
We create a new dictionary then we replace categorical values to numerical values.
https://medium.com/bycodegarage/encoding-categorical-data-in-machine-learning-def03ccfbf40

Conclusion

Le type de valeurs du dictionnaire que nous devrions faire pour assurer la transformation sont
nécessairement: Nombres

One-hot-encoding Principle
Now in the second method, we will transform each modality of the categorical
variable to a new feature.
But how is that ?
https://machinelearningmastery.com/why-one-hot-encode-data-in-machine-learning/

https://www.kaggle.com/dansbecker/using-categorical-data-with-one-hot-encoding

https://scikit-learn.org/stable/modules/generated/
sklearn.preprocessing.OneHotEncoder.html

One hot encoding return


But how the values of the new features are filled ?
Si nous regardons une ligne spécifique :

1. Avant la transformation, dans la couleur de colonne correspondante, nous avons par


exemple la valeur Rouge.
2. Lors de l’application d’un encodage à chaud, nous trouverons 1 dans la colonne
Rouge et 0 en jaune et vert.

One hot encoding Code


Let’s try to apply One hot encoding to the categorical feature “Role“ :
Conclusion

The goal of one hot encoding is to: Create new features from the variable modalities

Récapitulatif du nettoyage et de la transformation des


données
Nous avons généralement des valeurs manquantes dans notre ensemble de données qui
apparaissent sous forme de NaN. Pour y faire face :

1. Suppression à l’aide de la méthode dropna


2. Remplacement par la méthode fillna()

Nous avons deux méthodes pour transformer nos données que nous utilisons:

 Label encoder which will transform each categorical modality to a numerical


modality.
 One hot encoding which will transform each categorical modality to a new feature.

Data Preprocessing recap


Pandas is an open source library which offers several tools for data analysis. It
provides fast, flexible and expressive data structures that can be used for numerous
data manipulation tasks.
Missing values in the dataset is presented as NaN. To deal with it:

 We just delete it using dropna method


 We just fill it manually by the mean/median/mode

To transform our data we can use:

 Label encoder which will transform each categorical modality to a numerical


modality.

Or:

 One hot encoding which will transform each categorical modality to a new feature.

Vous aimerez peut-être aussi