Science des données avec Python

1.5 Science des données avec Python

Objectifs d'apprentissage

À la fin de cette section, vous devriez être en mesure de :

  • 1.5.1 Charger des données dans Python.
  • 1.5.2 Effectuer une analyse de données de base à l'aide de Python.
  • 1.5.3 Utiliser les principes de visualisation pour tracer graphiquement des données à l'aide de Python.

De multiples outils sont disponibles pour écrire et exécuter des programmes Python. Jupyter Notebook est un outil pratique et convivial. La section suivante explique comment configurer l'environnement Jupyter Notebook à l'aide de Google Colaboratory (Colab), puis présente les bases de deux bibliothèques Python open-source appelées Pandas et Matplotlib. Ces bibliothèques sont spécialisées respectivement dans l'analyse de données et la visualisation de données.

Pour aller plus loin

Programmation en Python

Dans la discussion qui suit, nous supposons que vous maîtrisez la syntaxe de base de Python et que vous savez écrire un programme simple en Python. Si vous avez besoin d'un rappel sur les bases, veuillez consulter Das, U., Lawson, A., Mayfield, C., & Norouzi, N. (2024). Introduction to Python Programming. OpenStax. https://openstax.org/books/introduction-python-programming/pages/1-introduction.

Jupyter Notebook sur Google Colaboratory

Jupyter Notebook est un environnement web qui vous permet d'exécuter un programme Python de manière plus interactive, en utilisant du code de programmation, des équations mathématiques, des visualisations et du texte brut. Il existe de multiples applications web ou logiciels que vous pouvez utiliser pour éditer un Jupyter Notebook, mais dans ce manuel, nous utiliserons l'application gratuite de Google appelée Google Colaboratory (Colab), souvent abrégée en Colab. Il s'agit d'une plateforme basée sur le cloud, ce qui signifie que vous pouvez ouvrir, éditer, exécuter et enregistrer un Jupyter Notebook sur votre Google Drive.

La configuration de Colab est simple. Sur votre Google Drive, cliquez sur Nouveau > Plus. Si votre Google Drive a déjà installé Colab auparavant, vous verrez Colaboratory sous Plus. Sinon, cliquez sur « Connecter plus d'applications » et installez Colab en recherchant « Colaboratory » dans la boutique d'applications (Figure 1.15). Pour plus d'informations, consultez l'animation Google Colaboratory Ecosystem.

Une capture d'écran de l'icône Google Drive avec un bouton d'ajout de nouveau contenu. En dessous se trouve le menu Google Workspace Marketplace avec une loupe et Colaboratory mis en surbrillance.
Figure 1.15 Installer Google Colaboratory (Colab)

Cliquez maintenant sur Nouveau > Plus > Google Colaboratory. Un nouveau Jupyter Notebook vierge apparaîtra, comme le montre la Figure 1.16.

Une capture d'écran d'un Jupyter Notebook vide dans Google Colaboratory. Le notebook est nommé Untitled.jpynb.
Figure 1.16 Notebook Google Colaboratory

La zone grise avec le bouton de lecture s'appelle une cellule. Une cellule (cell) est un bloc dans lequel vous pouvez saisir du code ou du texte brut. Remarquez qu'il y a deux boutons au-dessus de la première cellule : « + Code » et « + Texte ». Ces deux boutons ajoutent respectivement une cellule de code ou de texte. Une cellule de code sert au code que vous souhaitez exécuter ; une cellule de texte permet d'ajouter une description ou une note textuelle.

Exécutons un programme Python sur Colab. Tapez le code suivant dans une cellule de code.

Code Python

      print ("hello world!")
      

La sortie obtenue ressemblera à ceci :

hello world!

Vous pouvez écrire un programme Python réparti sur plusieurs cellules et insérer des cellules de texte entre elles. Colab traitera toutes les cellules de code comme des éléments d'un même programme, s'exécutant du haut vers le bas du Jupyter Notebook actif. Par exemple, les deux cellules de code ci-dessous s'exécutent comme s'il s'agissait d'un programme unique.

En exécutant une cellule à la fois depuis le haut, nous obtenons les résultats suivants sous chaque cellule.

Code Python

      
      a = 1
      print ("The a value in the first cell:", a)
      

La sortie obtenue ressemblera à ceci :

The a value in the first cell: 1

Code Python

      b = 3
      print ("a in the second cell:", a)
      print ("b in the second cell:", b)
      a + b

La sortie obtenue ressemblera à ceci :

a in the second cell: 1
b in the second cell: 3
4

Syntaxe Python conventionnelle versus syntaxe Jupyter Notebook

Alors que la syntaxe Python conventionnelle nécessite la syntaxe print() pour afficher un élément dans la console du programme, Jupyter Notebook ne requiert pas print(). Sur Jupyter Notebook, la ligne a+b au lieu de print(a+b) affiche également la valeur de a+b en sortie. Cependant, gardez à l'esprit que s'il y a plusieurs lignes de code qui déclenchent l'affichage de valeurs, seule la sortie de la dernière ligne s'affichera.

Vous pouvez également exécuter plusieurs cellules par lot. Cliquez sur Runtime dans le menu, et vous constaterez qu'il existe plusieurs manières d'exécuter plusieurs cellules en même temps (Figure 1.17). Les deux options les plus couramment utilisées sont « Tout exécuter » et « Exécuter les cellules précédentes ». « Tout exécuter » exécute toutes les cellules dans l'ordre depuis le haut ; « Exécuter les cellules précédentes » exécute toutes les cellules situées avant celle actuellement sélectionnée.

Une capture d'écran du menu Runtime dans Google Colab avec des options pour Tout exécuter, Exécuter les cellules précédentes, Exécuter la cellule sélectionnée, Exécuter la sélection et Exécuter les cellules suivantes, accompagnées des raccourcis clavier pour chacune.
Figure 1.17 Plusieurs manières d'exécuter des cellules sur Colab

Une chose à garder à l'esprit est que la possibilité de diviser un long programme en plusieurs blocs et d'exécuter un bloc à la fois augmente le risque d'erreur de la part de l'utilisateur. Examinons une version modifiée du code de l'exemple précédent.

Code Python

      a = 1
      print ("the value in the first cell:", a)
      

La sortie obtenue ressemblera à ceci :

the value in the first cell: 1

Code Python

      b = 3
      print ("a in the second cell:", a)
      print ("b in the second cell:", b)
      a + b
    

La sortie obtenue ressemblera à ceci :

a in the second cell: 1
b in the second cell: 3
4

Code Python

      a = 2
      a + b
    

La sortie obtenue ressemblera à ceci :

5

Le code modifié comporte une cellule supplémentaire à la fin, mettant à jour a de 1 à 2. Remarquez que maintenant a+b renvoie 5 puisque a a été modifié à 2. Supposons maintenant que vous ayez besoin d'exécuter la deuxième cellule pour une raison quelconque, et que vous l'exécutiez à nouveau.

Code Python

      a = 1
      print ("the a value in the first cell:", a)
      

La sortie obtenue ressemblera à ceci :

the a value in the first cell: 1

Code Python

      b = 3
      print ("a in the second cell:", a)
      print ("b in the second cell:", b)
      a + b
      

La sortie obtenue ressemblera à ceci :

a in the second cell: 2
b in the second cell: 3
5

Code Python

      a = 2
      a + b
      

La sortie obtenue ressemblera à ceci :

5

La valeur de a est passée à 2. Cela implique que l'ordre d'exécution de chaque cellule a de l'importance ! Si vous avez exécuté la troisième cellule avant la deuxième cellule, la valeur de a prendra celle de la troisième, même si cette troisième cellule est située sous la deuxième. Il est donc recommandé d'utiliser « Tout exécuter » ou « Exécuter les cellules précédentes » après avoir apporté des modifications à plusieurs cellules de code. De cette façon, votre code est garanti de s'exécuter séquentiellement depuis le début.

Pandas en Python

L'un des atouts majeurs de Python réside dans sa vaste gamme de bibliothèques libres et open-source. Les bibliothèques sont des ensembles de méthodes préexistantes auxquelles un programmeur peut faire référence, ce qui lui évite d'avoir à créer des fonctions communes à partir de zéro.

Pandas est une bibliothèque Python spécialisée dans la manipulation et l'analyse de données, et elle est très largement utilisée par les scientifiques des données. Elle propose une variété de méthodes permettant aux scientifiques des données de les exploiter rapidement pour l'analyse de données. Vous apprendrez à analyser des données à l'aide de Pandas tout au long de ce manuel.

Colab a déjà Pandas d'installé, il vous suffit donc d'importer Pandas pour être prêt à utiliser toutes les méthodes de Pandas. Notez qu'il est d'usage d'abréger pandas par pd, de sorte que lorsque vous appelez une méthode de Pandas, vous pouvez le faire en utilisant pd au lieu de devoir taper Pandas à chaque fois. Cela apporte un réel confort au programmeur !

Code Python

      # import Pandas and assign an abbreviated identifier "pd"
      import pandas as pd
      

Pour aller plus loin

Installer Pandas sur votre ordinateur

Si vous souhaitez installer Pandas sur votre propre ordinateur, consultez la page d'installation du site web de Pandas.

Charger des données avec Pandas en Python

La première étape de l'analyse de données consiste à charger les données qui vous intéressent dans votre Notebook. Créons un dossier sur Google Drive dans lequel vous pourrez conserver un fichier CSV pour le jeu de données et un Notebook pour l'analyse des données. Téléchargez un jeu de données public, ch1-movieprofit.csv, et enregistrez-le dans un dossier de votre Google Drive. Ouvrez ensuite un nouveau Notebook dans ce dossier en y accédant et en cliquant sur Nouveau > Plus > Google Colaboratory.

Ouvrez le Notebook et autorisez-le à accéder aux fichiers de votre Google Drive en suivant ces étapes :

Tout d'abord, cliquez sur l'icône Fichiers dans l'onglet latéral (Figure 1.18).

Une capture d'écran de l'onglet latéral de Google Colab montrant les icônes suivantes : menu hamburger, loupe, x entre crochets, clé et dossier. L'icône du dossier est mise en surbrillance et le mot « Fichiers » est apparu.
Figure 1.18 Onglet latéral de Colab

Cliquez ensuite sur l'icône Monter le Drive (Figure 1.19) et sélectionnez « Se connecter à Google Drive » dans la fenêtre contextuelle.

Une capture d'écran du menu contextuel Fichiers sur Google Colab. Le menu comprend quatre icônes, et l'icône Monter le Drive est sélectionnée.
Figure 1.19 Fonctionnalités sous Fichiers dans Colab

Notez qu'une nouvelle cellule a été insérée dans le Notebook à la suite de cette action (Figure 1.20).

Extrait de code dans Google Colab affichant une commande Python pour monter Google Drive. La commande importe le module 'drive' et utilise la fonction 'mount' avec le chemin '/content/drive'.
Figure 1.20 Cellule insérée pour monter votre Google Drive

Connectez votre Google Drive en exécutant la cellule ; votre fichier Notebook peut désormais accéder à tous les fichiers situés sous content/drive. Naviguez dans les dossiers sous drive pour localiser votre Notebook et les fichiers ch1-movieprofit.csv. Cliquez ensuite sur « … » > Copier le chemin d'accès (Figure 1.21).

Une capture d'écran montrant comment copier le chemin d'accès d'un fichier CSV situé dans un dossier Google Drive.
Figure 1.21 Copier le chemin d'accès d'un fichier CSV situé dans un dossier Google Drive

Remplacez maintenant [Path] par le chemin copié dans le code ci-dessous. Exécutez le code et vous verrez que le jeu de données a été chargé sous forme de tableau et stocké dans la variable Python data.

Code Python

        # import Pandas and assign an abbreviated identifier "pd"
        import pandas as pd
        
        data = pd.read_csv("[Path]")
        data
       

La sortie obtenue ressemblera à ceci :

Un tableau de sortie Python affichant des données sur des films, notamment le titre, l'année, le genre, la note, la durée, les recettes brutes aux États-Unis, les recettes brutes mondiales et les votes. Le tableau est trié par recettes brutes mondiales par ordre décroissant.

La méthode read_csv() de Pandas charge un fichier CSV et le stocke sous forme de DataFrame. Un DataFrame est un type de données que Pandas utilise pour stocker des données tabulaires à plusieurs colonnes. Par conséquent, la variable data contient le tableau de ch1-movieprofit.csv sous la forme d'un DataFrame Pandas.

DataFrame versus Series

Pandas définit deux types de données pour les données tabulaires : DataFrame et Series. Alors que DataFrame est utilisé pour les données tabulaires à plusieurs colonnes, Series est utilisé pour les données à colonne unique. De nombreuses méthodes de Pandas prennent en charge à la fois DataFrame et Series, mais certaines sont réservées à l'un ou à l'autre. Il est toujours bon de vérifier si la méthode que vous utilisez fonctionne comme vous le souhaitez. Pour plus d'informations, consultez la documentation de Pandas ou Das, U., Lawson, A., Mayfield, C., & Norouzi, N. (2024). Introduction to Python Programming. OpenStax. https://openstax.org/books/introduction-python-programming/pages/1-introduction.

Exemple 1.9

Problème

Vous souvenez-vous du jeu de données Iris que nous avons utilisé dans Données et jeux de données ? Chargez le jeu de données ch1-iris.csv dans un programme Python à l'aide de Pandas.

Solution

Le code suivant charge le fichier ch1-iris.csv stocké sur un Google Drive. Assurez-vous de remplacer le chemin d'accès par le chemin réel vers ch1-iris.csv sur votre Google Drive.

Code Python

        import pandas as pd 

        data = pd.read_csv("[Path to ch1-iris.csv]") # Replace the path 
        data
      

La sortie obtenue ressemblera à ceci :

Un tableau de sortie Python affichant une portion du jeu de données Iris. Les colonnes comprennent la longueur du sépale, la largeur du sépale, la longueur du pétale, la largeur du pétale et l'espèce. Les lignes montrent les données de différentes fleurs d'Iris.

Pour aller plus loin

Puis-je charger un fichier téléversé sur le Google Drive de quelqu'un d'autre et partagé avec moi ?

Oui ! Cela s'avère particulièrement utile lorsque votre espace de stockage Google Drive est insuffisant. Il vous suffit d'ajouter le raccourci du fichier partagé à votre propre Drive. Un clic droit > Organiser > Ajouter un raccourci vous permettra de choisir où stocker le raccourci. Une fois cette étape terminée, vous pouvez appeler pd.read_csv() en utilisant le chemin du raccourci.

Résumer des données avec Pandas en Python

Vous pouvez calculer des statistiques de base sur les données très rapidement en utilisant la méthode DataFrame.describe(). Ajoutez et exécutez le code suivant dans une nouvelle cellule. Il appelle la méthode describe() sur data, le DataFrame que nous avons défini précédemment avec ch1-movieprofit.csv.

Code Python

      data = pd.read_csv("[Path to ch1-movieprofit.csv]")
      data.describe()
      

comme ceci :

Un tableau de sortie Python affichant des statistiques descriptives pour les données cinématographiques, notamment le nombre, la moyenne, l'écart type, le minimum, le 25e centile, la médiane, le 75e centile et les valeurs maximales pour la note, la durée, les recettes brutes américaines et les recettes brutes mondiales en millions.

describe() renvoie un tableau dont les colonnes sont un sous-ensemble des colonnes de l'ensemble du jeu de données et dont les lignes sont différentes statistiques. Les statistiques incluent le nombre de valeurs uniques dans une colonne (count), la moyenne (mean), l'écart type (std), les valeurs minimale et maximale (min/max), ainsi que différents quartiles (25%/50%/75%), que vous découvrirez dans Mesures de variation. Grâce à cette représentation, vous pouvez facilement calculer ces statistiques pour différentes colonnes.

Exemple 1.10

Problème

Résumez le jeu de données IRIS en utilisant describe() sur le fichier ch1-iris.csv que vous avez chargé dans l'exemple précédent.

Solution

Le code suivant, placé dans une nouvelle cellule, renvoie le résumé du jeu de données.

Code Python

      data = pd.read_csv("[Path to ch1-iriscsv]")
      data.describe()
      

La sortie obtenue ressemblera à ceci :

Un tableau de sortie Python affichant des statistiques descriptives pour quatre mesures de fleurs d'Iris : longueur du sépale, largeur du sépale, longueur du pétale et largeur du pétale, incluant l'effectif, la moyenne, l'écart type, le minimum, les quartiles et les valeurs maximales.

Sélectionner des données avec Pandas en Python

Le DataFrame Pandas permet à un programmeur d'utiliser directement le nom de la colonne pour sélectionner une colonne. Par exemple, le code suivant affiche toutes les valeurs de la colonne « US_Gross_Million » sous la forme d'une Series (souvenez-vous que les données d'une seule colonne sont stockées sous le type Series dans Pandas).

Code Python

      data = pd.read_csv("[Path to ch1-movieprofit.csv]")
      
      data["US_Gross_Million"]
      

comme ceci :

0   760.51
1   858.37
2   659.33
3   936.66
4   678.82
    ...
961   77.22
962  177.20
963  102.31
964  106.89
965   75.47
Name: US_Gross_Million, Length: 966, dtype: float64

DataFrame.iloc[] permet une sélection plus avancée : elle donne la possibilité au programmeur de sélectionner à la fois par colonne et par ligne, en utilisant des indices de ligne et de colonne. Examinons quelques exemples de code ci-dessous.

Code Python

      data.iloc[:, 2] # select all values in the second column
      

La sortie obtenue ressemblera à ceci :

0   2009
1   2019
2   1997
3   2015
4   2018
    ...
961  2010
962  1982
963  1993
964  1999
965  2017
Name: Year, Length: 966, dtype: object

Code Python

      data.iloc[2,:] # select all values in the third row
      

La sortie obtenue ressemblera à ceci :

Unnamed: 0             3
Title            Titanic
Year              1997
Genre             Drama
Rating              7.9
Duration             194
US_Gross_Million       659.33
Worldwide_Gross_Million   2201.65
Votes           1,162,142
Name: 2, dtype: object

Pour cibler précisément une valeur donnée dans la colonne « US_Gross_Million », vous pouvez utiliser un numéro d'indice.

Code Python

      
      print (data["US_Gross_Million"][0]) # index 0 refers to the top row
      print (data["US_Gross_Million"][2]) # index 2 refers to the third row
      

La sortie obtenue ressemblera à ceci :

760.51
659.33

Vous pouvez également utiliser DataFrame.iloc[] pour sélectionner un groupe spécifique de cellules dans le tableau. Le code d'exemple ci-dessous illustre différentes façons d'utiliser iloc[]. Il existe de multiples manières d'employer iloc[], mais ce chapitre en présente deux des plus courantes. Vous découvrirez d'autres techniques de manipulation de données tout au long de cet ouvrage.

Code Python

      
      data.iloc[:, 1] # select all values in the second column (index 1)
      

La sortie obtenue ressemblera à ceci :

0                     Avatar
1                Avengers: Endgame
2                     Titanic
3   Star Wars: Episode VII - The Force Awakens
4             Avengers: Infinity War
             ...          
961                  The A-Team
962                    Tootsie
963              In the Line of Fire
964                 Analyze This
965            The Hitman's Bodyguard
Name: Title, Length: 966, dtype: object

Code Python

      data.iloc[[1, 3], [2, 3]]  
      # select the rows at index 1 and 3, the columns at index 2 and 3

La sortie obtenue ressemblera à ceci :

Un tableau de sortie Python à deux colonnes et deux lignes. La première colonne est intitulée « Year » et la deuxième colonne est intitulée « Genre ». La première ligne contient les valeurs « 2019 » et « Action », et la deuxième ligne contient les valeurs « 2015 » et « Action ». Deux icônes se trouvent à droite du tableau, l'une ressemblant à un calendrier et l'autre à un graphique à barres.

Exemple 1.11

Problème

Sélectionnez la colonne « sepal_width » du jeu de données IRIS en utilisant le nom de la colonne.

Solution

Le code suivant placé dans une nouvelle cellule renvoie la colonne « sepal_width ».

Code Python

      data = pd.read_csv("[Path to ch1-iris.csv]")
      
      data["sepal_width"]
      

La sortie obtenue ressemblera à ceci :

0   3.5
1   3.0
2   3.2
3   3.1
4   3.6
   ...
145  3.0
146  2.5
147  3.0
148  3.4
149  3.0
Name: sepal_width, Length: 150, dtype: float64

Exemple 1.12

Problème

Sélectionnez la colonne « petal_length » du jeu de données IRIS en utilisant iloc[].

Solution

Le code suivant placé dans une nouvelle cellule renvoie la colonne « petal_length ».

Code Python

      data.iloc[:, 2]
      

La sortie obtenue ressemblera à ceci :

0   1.4
1   1.4
2   1.3
3   1.5
4   1.4
   ...
145  5.2
146  5.0
147  5.2
148  5.4
149  5.1
Name: petal_length, Length: 150, dtype: float64

Rechercher des données avec Pandas en Python

Pour rechercher des entrées de données répondant à des critères spécifiques (c'est-à-dire filtrer), vous pouvez utiliser DataFrame.loc[] de Pandas. Lorsque vous indiquez les critères de filtrage entre les crochets, [], la sortie renvoie les lignes filtrées du DataFrame. Par exemple, le code ci-dessous filtre les lignes dont le genre est la comédie. Remarquez que la sortie ne contient que 307 des 3 400 lignes au total. Vous pouvez vérifier la sortie par vous-même : vous constaterez que leurs valeurs de Genre sont toutes « Comedy ».

Code Python

      data = pd.read_csv("[Path to ch1-movieprofit.csv]")
      
      data.loc[data['Genre'] == 'Comedy']
      

La sortie obtenue ressemblera à ceci :

Un tableau de sortie Python affichant des données sur des films, notamment le titre, l'année, le genre, la note, la durée, les recettes brutes américaines, les recettes brutes mondiales et les votes. Le tableau est trié par recettes brutes mondiales par ordre décroissant.

Exemple 1.13

Problème

À l'aide de DataFrame.loc[], recherchez tous les éléments de l'espèce Iris-virginica dans le jeu de données IRIS.

Solution

Le code suivant renvoie un DataFrame filtré dont l'espèce est Iris-virginica. Toutes ces lignes apparaissent dans la sortie.

Code Python

      data = pd.read_csv("[Path to ch1-iris.csv]")
      
      data.loc[data['species'] == 'Iris-virginica']
      

La figure obtenue ressemblera à ceci :

Un tableau de sortie Python affichant une portion du jeu de données Iris, plus précisément l'espèce Iris-virginica. Les colonnes comprennent la longueur du sépale, la largeur du sépale, la longueur du pétale, la largeur du pétale et l'espèce. Les lignes présentent les données de différentes fleurs d'Iris.
      (Rows 109 through 149 not shown.)
      

Exemple 1.14

Problème

Cette fois, recherchez tous les éléments dont l'espèce est Iris-virginica et dont la largeur de sépale est supérieure à 3,2.

Solution

Vous pouvez utiliser une expression booléenne — c'est-à-dire une expression qui s'évalue à True ou False — à l'intérieur de data.loc[].

Code Python

      data.loc[(data['species'] == 'Iris-virginica') & (data['sepal_width'] > 3.2)]
      

La sortie obtenue ressemblera à ceci :

Un tableau de sortie Python affichant une portion du jeu de données Iris, plus précisément l'espèce Iris-virginica. Les colonnes comprennent la longueur du sépale, la largeur du sépale, la longueur du pétale, la largeur du pétale et l'espèce. Les lignes présentent les données de différentes fleurs d'Iris.

Visualiser des données avec Matplotlib en Python

Il existe plusieurs manières de tracer des graphiques de données en Python. La façon la plus courante et la plus directe consiste à importer une autre bibliothèque, Matplotlib, qui est spécialisée dans la visualisation de données. Matplotlib est une bibliothèque très vaste, et pour tracer des graphiques, il vous suffit d'importer un sous-module appelé pyplot.

Tapez l'instruction d'importation suivante dans une nouvelle cellule. Notez qu'il est d'usage de désigner matplotlib.pyplot par plt, tout comme on abrège Pandas par pd.

Code Python

      import matplotlib.pyplot as plt
      

Matplotlib propose une méthode pour chaque type de graphique, et vous découvrirez les méthodes de Matplotlib pour tous les types couramment utilisés tout au long de ce manuel. Dans ce chapitre, nous allons toutefois voir brièvement comment tracer un graphique de manière générale avec Matplotlib.

Supposons que vous souhaitiez tracer un nuage de points entre « US_Gross_Million » et « Worldwide_Gross_Million » du jeu de données sur la rentabilité des films (ch1-movieprofit.csv). Vous étudierez les nuages de points plus en détail dans Analyse de corrélation et de régression linéaire. Le code d'exemple ci-dessous trace un tel nuage de points à l'aide de la méthode scatter(). scatter() prend en entrée les deux colonnes de votre choix — data["US_Gross_Million"] et data["Worldwide_Gross_Million"] — et les affecte respectivement aux axes x et y.

Code Python

      data = pd.read_csv("[Path to ch1-movieprofit.csv]")
      
      # draw a scatterplot using matplotlib’s scatter()
      plt.scatter(data["US_Gross_Million"], data["Worldwide_Gross_Million"])
      

La sortie obtenue ressemblera à ceci :

Un nuage de points sans étiquette. L'axe des X s'étend de 0 à 1 000. L'axe des Y s'étend de 0 à 3 000. Les points de données sont regroupés vers le coin inférieur gauche, avec une tendance générale à la hausse indiquant qu'une valeur plus élevée sur l'axe des X tend à être corrélée avec une valeur plus élevée sur l'axe des Y.

Remarquez qu'il s'agit simplement d'un ensemble de points sur un plan blanc. Le graphique lui-même n'indique pas ce que chaque axe représente, quel est le sujet du tracé, etc. Sans ces éléments, il est difficile de comprendre ce que le graphique illustre. Vous pouvez définir ces précisions avec le code suivant. Le tracé résultant ci-dessous montre qu'il existe une corrélation positive entre les recettes nationales et les recettes mondiales.

Code Python

      # draw a scatterplot
      plt.scatter(data["US_Gross_Million"], data["Worldwide_Gross_Million"])
      
      # set the title
      plt.title("Domestic vs. Worldwide Gross")
      
      # set the x-axis label
      plt.xlabel("Domestic")
      
      # set the y-axis label
      plt.ylabel("Worldwide")
      

La sortie obtenue ressemblera à ceci :

Un nuage de points comparant les recettes nationales aux recettes mondiales des films. L'axe des x représente les recettes nationales et s'étend de 0 à 1 000, et l'axe des y représente les recettes mondiales et s'étend de 0 à 3 000. Chaque point de données est un point bleu représentant un film. Le graphique montre une corrélation positive générale entre les recettes nationales et mondiales, indiquant que les films ayant des recettes nationales plus élevées ont également tendance à avoir des recettes mondiales plus élevées. Les points de données sont regroupés vers le coin inférieur gauche, avec une tendance générale à la hausse.

Vous pouvez également modifier la plage de valeurs le long des axes x et y avec plt.xlim() et plt.ylim(). Ajoutez les deux lignes de code suivantes à la cellule de l'exemple de code Python précédent qui trace le nuage de points.

Code Python

      # draw a scatterplot
      plt.scatter(data["US_Gross_Million"], data["Worldwide_Gross_Million"])
      
      # set the title
      plt.title("Domestic vs. Worldwide Gross")
      
      # set the x-axis label
      plt.xlabel("Domestic")
      
      # set the y-axis label
      plt.ylabel("Worldwide")
      
      # set the range of values of the x- and y-axes
      plt.xlim(1*10**2, 3*10**2) # x axis: 100 to 300
      plt.ylim(1*10**2, 1*10**3) # y axis: 100 to 1,000
      

La sortie obtenue ressemblera à ceci :

Un nuage de points comparant les recettes nationales aux recettes mondiales des films. L'axe des x représente les recettes nationales et s'étend de 100 à 300, et l'axe des y représente les recettes mondiales et s'étend de 100 à 1 000. Chaque point de données est un point bleu représentant un film. Le graphique montre une corrélation positive générale entre les recettes nationales et mondiales, indiquant que les films ayant des recettes nationales plus élevées ont également tendance à avoir des recettes mondiales plus élevées. Les points de données sont regroupés vers le coin inférieur gauche, avec une tendance générale à la hausse.

Le tracé obtenu avec ces lignes de code supplémentaires présente une plage de valeurs plus restreinte le long des axes x et y.

Exemple 1.15

Problème

En utilisant le jeu de données Iris, tracez un nuage de points entre la longueur du pétale et la largeur du pétale d'Iris setosa. Définissez également convenablement le titre, l'étiquette de l'axe des x et l'étiquette de l'axe des y.

Solution

Code Python

      import matplotlib.pyplot as plt 
      
      data = pd.read_csv("[Path to ch1-iris.csv]")
      
      # select the rows whose species are Setosa Iris
      setosa = data.loc[(data['species'] == 'Iris-setosa')]
      
      # draw a scatterplot
      plt.scatter(setosa["petal_length"], setosa["petal_width"])
      
      # set the title
      plt.title("Petal Length vs. Petal Width of Setosa Iris")
      
      # set the x-axis label
      plt.xlabel("Petal Length")
      
      # set the y-axis label
      plt.ylabel("Petal Width")
      

La sortie obtenue ressemblera à ceci :

Un nuage de points montrant la relation entre la longueur et la largeur des pétales de fleurs d'Iris setosa. L'axe des x représente la longueur du pétale et l'axe des y représente la largeur du pétale. Chaque point de données est représenté par un point bleu. Les points de données sont regroupés dans des plages spécifiques de longueur et de largeur de pétale, avec un certain chevauchement entre les groupes.

Jeux de données

Remarque : Les principaux jeux de données référencés dans le code de ce chapitre peuvent également être téléchargés ici.