Data Science Avec Pandas

La Data Science est un domaine en constante évolution qui révolutionne la façon dont nous analysons et prenons des décisions basées sur des données. À l’ère de la prise de décision fondée sur les données, la bibliothèque Pandas de Python a changé la donne. Grâce à ses puissants outils de manipulation et d’analyse des données, elle est devenue un outil indispensable pour les data scientists du monde entier. Prenons 9 minutes ensemble pour comprendre les concepts clés de la Data Science avec Pandas avec une rapide manipulation de données sur un cas du monde réel.

Si tu débutes dans la Data Science ou si tu cherches à affiner tes compétences, ce tuto est fait pour toi ! Nous allons nous plonger dans le monde de Pandas et explorer les concepts clés qui t’aideront à libérer tout le potentiel de cette puissante bibliothèque. Du nettoyage et du filtrage des données à la fusion et au regroupement, nous couvrirons tout ce que tu dois savoir pour devenir un pro de Pandas.

Mais il ne s’agira pas d’un simple tuto ennuyeux. Nous utiliserons des exemples du monde réel et des morceaux de code pratique pour en faire une réelle expérience d’apprentissage engageante. Que tu sois un data scientist chevronné ou que tu débutes, ce post te permettra de maîtriser Pandas et de faire passer tes compétences en matière d’analyse de données au niveau supérieur. Alors, attache ta ceinture et viens avec moi dans le monde passionnant de la Data Science avec Pandas !

Importation de Pandas

Avant de commencer à travailler avec Pandas, nous devons importer la bibliothèque dans notre environnement Python. Nous pouvons le faire en exécutant le code suivant :

import pandas as pd

Cela permet d’importer la bibliothèque Pandas et de lui donner l’alias « pd » afin de pouvoir s’y référer facilement dans notre code.

Lecture dans un DataFrame

Un DataFrame est une structure de données bidimensionnelle de type tableau qui est utilisée pour stocker et manipuler des données. La façon la plus courante de créer un DataFrame est de lire les données à partir de différents formats de fichiers tels que CSV, Excel et les fichiers texte.

# lire un fichier CSV
csv_df = pd.read_csv('path_of_file/filename.csv') 

# lire un fichier texte
text_df = pd.read_csv('path_of_file/filename.txt')

# lire un fichier excel
excel_df = pd.read_excel('path_of_file/filename.xlsx')

Nous utiliserons un ensemble de données contenant les films et les émissions de télévision présents sur Netflix et nous apprendrons à utiliser Pandas pour effectuer des analyses sur cet ensemble de données. Les données peuvent être téléchargées sur Kaggle.

J’ai téléchargé les jeux de données (titles.csv et credits.csv) et les ai placés dans le même dossier que celui où j’exécute le code python.

Voici le notebook de l’ensemble du code python de ce tuto.

Lisons les jeux de données :

netflix_titles = pd.read_csv('titles.csv')
netflix_credits = pd.read_csv('credits.csv')

Observation des données

Une fois que nous avons le DataFrame, nous pouvons utiliser différentes méthodes pour visualiser les données. Par exemple, nous pouvons utiliser la méthode head() pour afficher les premières lignes du DataFrame :

netflix_titles.head() 
Data Science avec Pandas : affichage des 5 premières lignes du dataframee netflix_titles

Les données relatives aux titres contiennent des informations telles que le nom des films ou des émissions de télévision, l’année de sortie, les genres, le numéro de la saison, le classement IMDB, etc.

netflix_credits.head()
Data Science avec Pandas : affichage des 5 premières lignes du dataframee netflix_credits

Les données du générique contiennent des informations sur l’acteur et le réalisateur qui ont été associés au film.

Sélection de données

Nous pouvons sélectionner des lignes ou des colonnes spécifiques d’un DataFrame en utilisant l’indexation (en utilisant des crochets). Par exemple, nous pouvons sélectionner la colonne ‘description’ comme suit :

netflix_titles['description']
0       This collection includes 12 World War II-era p...
1       When world heavyweight boxing champion, Apollo...
2       Australian good girl Sandy and greaser Danny f...
3       A novice con man teams up with an acknowledged...
4       After Rocky goes the distance with champ Apoll...
                              ...                        
6132    Two young boys must work together to stop robb...
6133    ‘Theatre is my life,’ Yıldız Kenter admits in ...
6134    This Queen of Comedy shines as she takes the s...
6135    The lives of three teenagers and a hit-man int...
6136    A story about young boy sultan, 11 years old l...
Name: description, Length: 6137, dtype: object

Il est également possible de sélectionner plusieurs colonnes, ce qui renvoie un DataFrame. Il est possible d’accéder à plusieurs colonnes à l’aide de doubles crochets.

netflix_titles[['title','description']]
Data Science avec Pandas : sélection de données

Filtrage des données

Nous pouvons filtrer les données d’un DataFrame en fonction de certaines conditions. Par exemple, nous pouvons filtrer les films/expositions dont la note IMDB est supérieure à 8.

netflix_titles[netflix_titles['imdb_score']>8]
Data Science avec Pandas : filtrage dde données

Cette opération renvoie un nouveau DataFrame contenant les lignes dont la note IMDB est supérieure à 8.

Aggrégation de données

Nous pouvons utiliser la méthode groupby() pour regrouper les données d’un DataFrame par une ou plusieurs colonnes, puis appliquer des fonctions d’agrégation à chaque groupe. Par exemple, nous pouvons regrouper les données par « type » et calculer le nombre de titres pour chaque type (film ou spectacle) comme suit :

netflix_titles.groupby(['type']).agg(title_count = ('title','count'))

Cette méthode renvoie un objet de type DataFrame contenant le nombre de titres pour chaque type.

Data Science avec Pandas : aggrégation de ddonnées

Gestion des valeurs manquantes

Nous observons souvent des valeurs manquantes ou nulles dans nos DataFrame en raison d’erreurs de saisie, de non-réponses, d’erreurs de traitement des données, de causes naturelles, etc.

Pandas fournit plusieurs méthodes pour gérer les valeurs manquantes dans un DataFrame, telles que dropna(), fillna(). Nous pouvons supprimer les lignes contenant des valeurs manquantes à l’aide de la méthode dropna(). Nous pouvons remplir les valeurs manquantes avec une constante en utilisant la méthode fillna().

Par exemple, dans notre ensemble de données, la colonne ‘seasons’ comporte des valeurs manquantes (null) correspondant aux films, car les films n’ont pas de saisons en général. Nous pouvons remplir ces valeurs null avec 0.

netflix_titles['seasons'] = netflix_titles['seasons'].fillna(0)
netflix_titles.head()
Data Science avec Pandas : gestion des valeurs manquantes

Tri des données

Nous pouvons trier les données d’un DataFrame sur la base d’une ou plusieurs colonnes à l’aide de la méthode sort_values().

# trier les données en fonction de l'année de publication 
netflix_titles.sort_values('release_year')
# trier le DataFrame sur la base de l'année de sortie et du classement IMDB, tous deux dans l'ordre décroissant
netflix_titles.sort_values(['release_year', 'imdb_score'], ascending=[False, False])
Data Science avec Pandas : tri des données

Fusion et assemblage de données

Pandas nous permet de fusionner et de joindre plusieurs DataFrames sur la base des colonnes communes en utilisant des méthodes telles que merge(), join() et concat().

Dans notre jeu de données Netflix, nous pouvons joindre les données du titre et les données du générique pour obtenir les deux informations dans le même DataFrame.

# fusionner les DataFrames sur la base de la colonne 'id'.
joined_df = pd.merge(netflix_titles, netflix_credits, on = 'id', how = 'inner')
joined_df.head()
Data Science avec Pandas : fusion et assemblage de dataframes

Application de fonctions

Nous pouvons appliquer des fonctions à une ou plusieurs colonnes d’un DataFrame à l’aide de méthodes telles que apply() et lambda.

Par exemple, dans le code ci-dessous, nous convertissons la durée de diffusion des films/émissions de minutes en heures.

# convertir la durée d'exécution en heures en utilisant apply et la fonction lambda 
joined_df['runtime'] = joined_df['runtime'].apply(lambda x: x/60)
joined_df.head()
Data Science avec Pandas : application de fonctions

Visualisation de données

Pandas fournit une variété de fonctions intégrées pour créer des graphiques et des visualisations à partir d’objets DataFrame. Ces fonctions s’appuient sur la célèbre bibliothèque matplotlib, ce qui facilite la création de visualisations personnalisées.

Par exemple, dans le code ci-dessous, nous étudions la distribution du nombre d’acteurs/réalisateurs dans les films/expositions.

import matplotlib.pyplot as plt

role_count = joined_df.groupby('id').agg(count_role = ('role','count')).reset_index()
plt.hist(role_count['count_role'], bins=15)
plt.xlabel("Nombre d'acteurs et de réalisateurs")
plt.ylabel("# Titres")
Data Science avec Pandas : histogramme

Travail avec des dates et heures

Nous travaillons souvent avec des colonnes de date et d’heure pour effectuer des analyses à différentes périodes. Il est donc important de comprendre comment travailler avec la date et l’heure dans pandas.

Définir la colonne date comme index du DataFrame :

dates = pd.date_range('2023-01-01', periods=10) 
df = pd.DataFrame({'A': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 'B': [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]}, index=dates) 

print(df)
             A   B
2023-01-01   1  11
2023-01-02   2  12
2023-01-03   3  13
2023-01-04   4  14
2023-01-05   5  15
2023-01-06   6  16
2023-01-07   7  17
2023-01-08   8  18
2023-01-09   9  19
2023-01-10  10  20

Dans cet exemple, nous créons un DataFrame avec des dates comme index en utilisant la méthode date_range(). Les dates commencent le 1er janvier 2022 et vont jusqu’au 10 janvier 2023, avec 10 périodes au total. Nous ajoutons également deux colonnes, ‘A’ et ‘B’, avec des valeurs aléatoires.

Nous pouvons ensuite travailler avec les dates et les heures de ce DataFrame à l’aide de diverses méthodes fournies par Pandas. Par exemple, nous pouvons sélectionner un sous-ensemble du DataFrame pour une plage de dates spécifique :

# sélectionner un sous-ensemble de DataFrame pour une plage de dates spécifique 

subset = df['2023-01-03':'2023-01-07'] 

print(subset)
            A   B
2023-01-03  3  13
2023-01-04  4  14
2023-01-05  5  15
2023-01-06  6  16
2023-01-07  7  17

Nous pouvons également rééchantillonner les données du DataFrame sur la base d’un intervalle de temps spécifique, par exemple quotidien ou hebdomadaire :

# rééchantillonner les données sur la base d'un intervalle de temps 

daily = df.resample('D').sum() 
print(daily) 

weekly = df.resample('W').mean()
print(weekly)
             A   B
2023-01-01   1  11
2023-01-02   2  12
2023-01-03   3  13
2023-01-04   4  14
2023-01-05   5  15
2023-01-06   6  16
2023-01-07   7  17
2023-01-08   8  18
2023-01-09   9  19
2023-01-10  10  20
              A     B
2023-01-01  1.0  11.0
2023-01-08  5.0  15.0
2023-01-15  9.5  19.5

Conclusion de la Data Science avec Pandas

Dans ce post, nous avons abordé quelques concepts clés de la Data Science avec Pandas. Nous avons appris à importer Pandas, à créer un DataFrame, à visualiser des données, à sélectionner des données, à filtrer des données et à agréger des données. Ces concepts ne sont que la partie émergée de l’iceberg, et tu peux bien entendu faire beaucoup plus avec Pandas. Cependant, la compréhension de ces concepts est essentielle si tu veux travailler avec des données en Python.

J’espère que tu as appris quelque chose de nouveau grâce à ce tuto 🙂

Pour aller plus loin dans la Data Science avec Pandas (et Python), tu peux suivre le programme Python pour la Data Science.

Publications similaires

0 Commentaires
Le plus récent
Le plus ancien Le plus populaire
Commentaires en ligne
Afficher tous les commentaires