TP-4-Analyse-Exploratoire-de-Données-AED

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 5

UNIVERSITE DE SOUSSE

Institut Supérieur des Sciences


‫جــامعة سوسة‬
Appliquées et de Technologie de Sousse |
Sousse ‫المعهد العالي للعلوم التطبيقية‬
‫والتكنولوجيا بسوسة‬
TP4: Analyse Exploratoire de Données (AED)
Matière : Initiation à la data science
Enseignante : Ferdaws Bessaad
Classe : ING-A3
A.U. : 2024/2025

Objectifs du TP
• Indexing : sélectionner des valeurs d'un dataframe
• Ajout, suppression et modification sur un dataframe
• Nettoyage et préparation des données
• Manipulation avancée des données avec Pandas

I. Extraction à partir d'un fichier Excel

Charger le contenu du fichier Excel (Sample_Superstore.xlsx) dans un Dataframe

1. Importer la bibliothèque Pandas

2. Importer le fichier Excel:

✓ Utiliser la fonction read_excel() pour lire le fichier Excel.

✓ Lire la deuxième feuille de ce fichier en utilisant l'option sheet_name.

✓ Utiliser index_col (Row ID) pour définir la colonne qui devient l'index du
Dataframe.

✓ Afficher le contenu de la colonne « nom des clients » du Dataframe résultat.

II. Manipulation de données à partir d’un fichier CSV

1. Importer le fichier catdata.csv est le nom de l'objet crée, de type DataFrame et afficher
les premières lignes du jeu de donnée
➔(Le DataFrame catdata : Il s'agit d'un jeu de données où les individus observés sont
des chats et les critères d'observation sont la couleur du pelage, la robe, le sexe, le poids,
l'âge et le type de nourriture)

Page 1 sur 5
2. Afficher l’énumération des lignes et colonnes avec index et columns
Notes :
✓ Ici seule la description statistique des variables numériques ("weight" et
"age") est donnée.
✓ On peut ajouter l'argument include='all' pour avoir la description de toutes les
données (numériques et catégorielles).
✓ Certains indicateurs statistiques ne sont valables que pour les variables
numériques (moyenne, min, max, quartiles), et inversement pour les non-
numériques (unique, top, freq), d'où les NaN (= Not a Number) dans certaines
situations

III. Analyse statistique univarié


4. Accéder à la colonne « Age » :
a. Obtenir des statistiques descriptives seulement pour la variable « Age », toujours
avec la fonction describe()
b. Calculer explicitement la moyenne
c. Compter l'occurrence d'une valeur pour avec la fonction value_counts()
d. Trier les valeurs grâce à la fonction sort_values()
Les requêtes (restrictions avec des conditions)
Il est possible d'isoler les sous-ensembles d'observations répondant à des critères définis sur
les variables. Pour cela on utilisera la méthode loc[ , ] (Seules les observations correspondant
à True sont reprises par loc)

5. Accéder à la colonne « Hairpattern» :


a. Affiche que les lignes du DataFrame pour lesquelles la variable "Hairpattern"
vaut "solid".
b. Dénombrer les observations correspondant à True et False avec la
fonction value_counts()
c. Donner une restriction à plusieurs valeurs d'une même variable. Pour cela on
utilise la fonction isin() dans laquelle on donne la liste des valeurs souhaitées
(Affiche que les lignes du DataFrame pour lesquelles la variable "Hairpattern"
vaut "solid" et "tabby" .
Notes :
Il est possible de combiner les conditions grâce aux opérateurs logiques :
• & : et
• | : ou
• ~ : negation
6. Afficher les chats femelles et ayant une robe de type "solid".

Page 2 sur 5
IV. Croisement des variables

Tout comme on peut faire des tableaux croisés dynamiques avec Excel, il est possible avec
Pandas de procéder à des croisements de données et effectuer des calculs récapitulatifs.

➔Les tableaux croisés s'obtiennent à l'aide de la fonction crosstab() de pandas

7. Créer un crosstab simple pour obtenir les fréquences selon le sexe et le type de robe.

8. Il est possible d'effectuer un post-traitement directement dans la fonction crosstab,


a. Calculer le pourcentage en ligne à l’aide de l’attribut normalize='index'
b. Calculer le pourcentage en colonne à l’aide de l’attribut normalize='columns'

V. Conctruction de variables calculées

9. Créer une Series « weightPound » qui correspond au poids en kilo des chats converti
en livres (1 kilo = 2,20462 livres)
10. Créer une Series « weightLog » qui correspond au logarithme du poids des chats.

VI. Concaténation

Il est possible de combiner ensemble des Series et/ou des DataFrames.

La fonction concat permet de concaténer ensemble des Series ou DataFrames le long d'un axe
(axis = 0 : ligne ou axis = 1 : colonne).

11. Créer un nouveau DataFrame catnew issu de la concaténation du DataFrame cat et des
deux Series créées auparavant : weightLog et weightPound ⇒⇒ on a ajouté 2
nouvelles colonnes (axis=1) au DataFrame original.
12. Renommer les noms des colonnes (cependant on remarque que les deux Series des poids
ont le même nom).

VII. Ajouter /Remplir/Supprimer de(s) colonne(s)/ligne(s) et modification de(s)


valeur(s)

1. Charger le contenu du fichier CSV (earthquake.csv) dans un Dataframe et


sélectionner les colonnes suivantes : ['time', 'title', 'place', 'magType', 'mag', 'alert',
'tsunami'].

2. Ajouter une colonne « source » dans le dataframe avec le contenu « USGS API »

Page 3 sur 5
3. Ajouter la colonne 'mag_negative' qui prend comme valeur true ou false dont le
cas où la colonne 'mag' contienne des valeurs négatives.

4. Ajouter une nouvelle colonne 'parsed_place'

5. Utiliser la méthode replace() pour remplacer une ou plusieurs valeurs de la colonne


place de DataFrame et enregistrer le résultat dans la colonne «parsed_place»

Exp :

✓ 'CA'➔ 'California

✓ 'NV'➔ 'Nevada'

✓ 'MX'➔ 'Mexico'

6. Enregistrer le contenu des deux colonnes 'place', 'parsed_place' dans un fichier


Excel

7. Utiliser la méthode assign() pour créer plusieurs colonnes en même temps ou


mettre à jour des colonnes existantes

Exemple : vérifier si la colonne « parsed_place » contient les deux valeurs


« California » et « Alaska » et enregistrer le résultat dans deux colonnes
‘in_CA’ et ‘in_AL ‘

8. Faire une copie du Dataframe à l’aide de la fonction copy() et modifier les valeurs
d'une colonne

• avec l'attribut loc

• avec l'attribut iloc

9. Supprimer une colonne au choix en utilisant la méthode del et vérifier si elle existe
encore

10. Supprimer plusieurs colonnes au choix avec la méthode drop

11. Supprimer des lignes en passant une liste d'indices à la méthode drop

VIII. Traitement des données dupliquées, manquantes ou invalides

1. Charger le contenu du fichier CSV (olympic_data.csv) dans un Dataframe

Page 4 sur 5
2. Utiliser la méthode isna() pour trouver les valeurs nuls et la méthode sum() pour
compter le nombre de valeurs par colonnes

3. Utiliser la méthode notna() pour supprimer une ligne lorsqu'une colonne spécifique
contient NaN

4. Utiliser la méthode fillna() pour

• remplacer les valeurs manquantes par la moyenne de la variable

• remplacer l'ensemble des NaN par une certaine valeur(exp : Remplacer tous
les NaN par 0)

1. Utiliser la méthode duplicated() pour trouver les lignes dupliquées

2. Utiliser duplicated().sum() pour trouver les dupliquées

3. Supprimer toutes les lignes dupliquées

4. Corriger le type de la colonne 'Year' (Faire la conversion avec pd.to_datetime())

5. Trier les données sur l'axe 1 (nom des colonnes)

6. Effectuer un tri sur les valeurs de la colonne "Weight" et utiliser l'attribut


na_position="last" pour mettre les valeurs manquantes (NaN) à la fin du tableau
trié

7. Rajouter ascending=False pour trier les poids par ordre décroissant

IX. Manipulation avancée des données avec Pandas

Les opérations groupby

1. Faire groupby sur une colonne

2. Faire groupby sur plusieurs colonnes

Remodeler / ré-organiser des dataframes

1. Faire le pivotage à l'aide de la méthode pivot_table (les tableaux croisés


dynamiques)

Page 5 sur 5

Vous aimerez peut-être aussi