Science des données - Préparation des données
Avant d'analyser les données, un Data Scientist doit extraire les données et les rendre propres et précieuses.
Extraire et lire des données avec Pandas
Avant que les données puissent être analysées, elles doivent être importées/extraites.
Dans l'exemple ci-dessous, nous vous montrons comment importer des données à l'aide de Pandas en Python.
Nous utilisons la read_csv()
fonction pour importer un fichier CSV avec les données de santé :
Exemple
import pandas as pd
health_data = pd.read_csv("data.csv", header=0, sep=",")
print(health_data)
Exemple expliqué
- Importer la bibliothèque Pandas
- Nommez le bloc de données
health_data
. header=0
signifie que les en-têtes des noms de variables doivent être trouvés dans la première ligne (notez que 0 signifie la première ligne en Python)sep=","
signifie que "," est utilisé comme séparateur entre les valeurs. C'est parce que nous utilisons le type de fichier .csv (valeurs séparées par des virgules)
Conseil : Si vous avez un fichier CSV volumineux, vous pouvez utiliser la
head()
fonction pour n'afficher que les 5 premières lignes :
Exemple
import pandas as pd
health_data = pd.read_csv("data.csv", header=0, sep=",")
print(health_data.head())
Nettoyage des données
Regardez les données importées. Comme vous pouvez le voir, les données sont "sales" avec des valeurs erronées ou non enregistrées :
- Il y a des champs vides
- Un pouls moyen de 9 000 n'est pas possible
- 9 000 sera traité comme non numérique, à cause du séparateur d'espace
- Une observation du pouls maximum est notée "AF", ce qui n'a pas de sens
Donc, nous devons nettoyer les données afin d'effectuer l'analyse.
Supprimer les lignes vides
Nous voyons que les valeurs non numériques (9 000 et AF) sont dans les mêmes lignes avec des valeurs manquantes.
Solution : Nous pouvons supprimer les lignes avec des observations manquantes pour résoudre ce problème.
Lorsque nous chargeons un ensemble de données à l'aide de Pandas, toutes les cellules vides sont automatiquement converties en valeurs "NaN".
Ainsi, la suppression des cellules NaN nous donne un ensemble de données propres qui peuvent être analysées.
Nous pouvons utiliser la dropna()
fonction pour supprimer les NaN. axis=0 signifie que nous voulons supprimer toutes les lignes qui ont une valeur NaN :
Exemple
health_data.dropna(axis=0,inplace=True)
print(health_data)
Le résultat est un ensemble de données sans lignes NaN :
Catégories de données
Pour analyser les données, nous devons également connaître les types de données que nous traitons.
Les données peuvent être divisées en trois catégories principales :
- Numérique - Contient des valeurs numériques. Peut être divisé en deux catégories :
- Discret : les nombres sont comptés comme "entiers". Exemple : Vous ne pouvez pas avoir entraîné 2,5 séances, c'est soit 2, soit 3
- Continu : les nombres peuvent être d'une précision infinie. Par exemple, vous pouvez dormir 7 heures, 30 minutes et 20 secondes, soit 7,533 heures
- Catégoriel - Contient des valeurs qui ne peuvent pas être mesurées les unes par rapport aux autres. Exemple : Une couleur ou un type d'entraînement
- Ordinal - Contient des données catégorielles qui peuvent être mesurées les unes par rapport aux autres. Exemple : notes scolaires où A est meilleur que B et ainsi de suite
En connaissant le type de vos données, vous pourrez savoir quelle technique utiliser lors de leur analyse.
Types de données
Nous pouvons utiliser la info()
fonction pour répertorier les types de données dans notre ensemble de données :
Exemple
print(health_data.info())
Résultat:
Nous voyons que cet ensemble de données a deux types de données différents :
- Flotteur64
- Objet
Nous ne pouvons pas utiliser d'objets pour calculer et effectuer une analyse ici. Nous devons convertir l'objet type en float64 (float64 est un nombre avec une décimale en Python).
Nous pouvons utiliser la astype()
fonction pour convertir les données en float64.
L'exemple suivant convertit "Average_Pulse" et "Max_Pulse" en type de données float64 (les autres variables sont déjà du type de données float64) :
Exemple
health_data["Average_Pulse"]
= health_data['Average_Pulse'].astype(float)
health_data["Max_Pulse"] =
health_data["Max_Pulse"].astype(float)
print
(health_data.info())
Résultat:
Maintenant, l'ensemble de données n'a que des types de données float64.
Analyser les données
Lorsque nous avons nettoyé l'ensemble de données, nous pouvons commencer à analyser les données.
Nous pouvons utiliser la describe()
fonction en Python pour résumer les données :
Exemple
print(health_data.describe())
Résultat:
Durée | Pouls_moyen | Max_Pulse | Calorie_burnage | Heures_travail | Heures_Sommeil | |
---|---|---|---|---|---|---|
Compter | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 |
Moyenne | 51,0 | 102,5 | 137,0 | 285,0 | 6.6 | 7.5 |
Std | 10h49 | 15.4 | 11h35 | 30.28 | 3.63 | 0,53 |
Min | 30,0 | 80,0 | 120,0 | 240,0 | 0.0 | 7.0 |
25% | 45,0 | 91,25 | 130,0 | 262,5 | 7.0 | 7.0 |
50% | 52,5 | 102,5 | 140,0 | 285,0 | 8.0 | 7.5 |
75% | 60,0 | 113,75 | 145,0 | 307.5 | 8.0 | 8.0 |
Max | 60,0 | 125,0 | 150,0 | 330,0 | 10.0 | 8.0 |
- Compter - Compte le nombre d'observations
- Moyenne - La valeur moyenne
- Std - Écart type (expliqué dans le chapitre sur les statistiques)
- Min - La valeur la plus basse
- 25 % , 50 % et 75 % sont des centiles (expliqués dans le chapitre sur les statistiques)
- Max - La valeur la plus élevée