- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Dans cette vidéo, on va voir comment sélectionner différentes données à l'intérieur de notre DataFrame.Donc là, j'ai ouvert un nouveau notebook Jupyter et j'ai récupéré mon fichier CSV dans une variable df.
00:00:13 :Donc la première chose qu'on va vouloir faire, généralement, c'est récupérer les informations d'une colonne en particulier.Si j'affiche mon DataFrame, donc juste les cinq premières entrées avec la méthode head ici,je pourrais, par exemple, vouloir afficher uniquement la colonne email.
00:00:28 :Pour ça, on peut utiliser les crochets et indiquer dans une chaîne de caractère le nom de la colonne qu'on souhaite récupérer.Sur cette colonne, je peux réutiliser la méthode head qui me permet de n'afficher que les cinq premiers éléments.
00:00:41 :Si je n'utilise pas cette méthode, ça va m'afficher, là encore, les cinq premiers et les cinq derniers éléments.Mais cet objet, on peut très bien utiliser la méthode head dessus pour ne récupérer que les cinq premières entrées.
00:00:51 :On peut également récupérer une colonne en utilisant l'attribut du nom de la colonne.Alors ça marche si on a une colonne qui n'a pas d'espace dans le nom.
00:00:59 :Si vous avez des espaces, il faudra passer par cette façon de faire.Mais dans le cas de l'email, par exemple, on peut faire df.email.Donc en fait, la colonne sous forme d'attribut et ça va nous retourner exactement la même chose que ce qu'on avait avec les crochets.
00:01:13 :Donc une autre façon d'accéder aux données d'une colonne.Vous allez voir que là, il y a quelque chose de très important à comprendre.C'est la différence entre le DataFrame et les séries.
00:01:24 :Alors on ne va pas rentrer à fond dans le détail de NumPy et tout ce qui se passe en arrière plan.Mais c'est quand même assez important de comprendre ces deux objets qui sont les deux types d'objets avec lesquels on travaille régulièrement avec Panda.
00:01:35 :Donc si j'utilise la fonction type sur df, vous allez voir qu'on a ce qu'on appelle un DataFrame.Si par contre, j'utilise la fonction type sur df.email, donc sur la colonne email de mon DataFrame.
00:01:47 :Cette fois-ci, j'ai un objet qui s'appelle Series ici.Et donc en fait, tout simplement pour résumer la chose, DataFrame, c'est le tableau complet.Donc avec des rangées et des colonnes.
00:01:57 :Et Series, c'est tout simplement une seule colonne à l'intérieur de notre DataFrame.Donc si je reviens dans mon fichier CSV, dans data.csv ici.Notre DataFrame, donc df dans ce cas-ci, c'est vraiment tout ce qu'on a ici.
00:02:09 :C'est à la fois des rangées ici et des colonnes.Donc plusieurs colonnes avec la colonne id, dat, firstname, etc.Et une série, ça va tout simplement être un seul élément ici.
00:02:19 :Donc par exemple, la colonne lastname, la colonne email ou encore la colonne gender.Donc en fait, un DataFrame, si vous voulez, c'est comme un agencement de plusieurs séries, les unes avec les autres.
00:02:29 :Vous remarquez cependant, quand on affiche une série, comme on le fait ici avec df.email, qu'on a quand même un numéro qui est associé.Donc on a quand même un index à chaque fois, 0, 1, 2, 3, 4 ici, qui est associé à chaque adresse email.
00:02:51 :Donc pourquoi c'est important en fait cette distinction ?Tout simplement parce que certaines opérations ne seront possibles que sur des séries et d'autres opérations que sur des DataFrames.
00:02:59 :Donc c'est important de bien savoir quel type d'objet vous avez.Si vous n'êtes pas sûr, vous pouvez utiliser cette fonction type pour afficher si vous êtes en présence d'un DataFrame ou d'une série.
00:03:09 :Avec l'habitude, vous verrez que certaines méthodes ne sont pas disponibles sur les séries mais sont disponibles sur les DataFrames.Ou alors également que certaines méthodes sont disponibles sur les deux.
00:03:18 :On l'a vu avec HEAD, on peut l'utiliser sur une série ou sur un DataFrame.Et dans les deux cas, ça fonctionne et ça ne nous affiche que les cinq premiers éléments du DataFrame ou de la série.
00:03:36 :Donc voilà pour cette parenthèse. N'hésitez pas à utiliser la fonction type pour savoir avec quel type d'objet vous travaillez.Donc revenons maintenant à la sélection de certaines données à l'intérieur de notre DataFrame, donc df ici.
00:03:48 :On peut également utiliser les crochets pour récupérer un intervalle.Donc si par exemple sur mon DataFrame ici, je souhaite récupérer les éléments avec l'indice ici qui va de 10 à 20,je peux dans les crochets mettre 10.20, donc exactement comme un slice quand on fait une liste.
00:04:05 :Quand on a une liste en Python, on peut faire un slice comme ceci avec un premier et un deuxième élément.Et là, vous voyez que je récupère uniquement les éléments qui vont de 10 à 19.
00:04:14 :Donc là, c'est exclusif. Si on va jusqu'à 20, ça va s'arrêter à 19.Donc là, bien faire attention, on n'utilise pas la colonne id.Là, on a une colonne id qui est présente dans notre DataFrame, mais ce n'est pas avec cette colonne que l'on va cibler les éléments.
00:04:26 :C'est vraiment avec l'index que l'on a ici, donc 10, 11, 12, 13, etc. jusqu'à 19 puisque le 20 est exclusif.Pour récupérer ces éléments, on peut également utiliser l'oc.
00:04:36 :Donc on fait df.loc et on peut remettre là avec des crochets 10, 2 points et par exemple 13 dans ce cas-ci.Alors il faut bien faire attention avec l'oc ici, c'est des crochets qu'on utilise.
00:04:46 :C'est un peu perturbant au début, je sais, on a envie de mettre des parenthèses, mais non, c'est bien des crochets qu'il faut mettre.Donc df.loc et là encore, on va cibler les éléments qui vont de 10 à 13.
00:04:55 :Et la différence avec l'oc, c'est que cette fois-ci, le 13 sera inclus.Donc ce n'est pas comme avec notre slice ici où le 20 n'était pas inclus.
00:05:02 :Avec l'oc, on va aller de 10 à 13 et le 13 est inclus.Il faut bien faire attention, l'oc ici, ça va nous permettre de cibler l'index que l'on a dans notre DataFrame.
00:05:11 :Dans ce cas-ci, notre index, c'est en fait une valeur numérique.Donc on peut récupérer ces différentes valeurs avec 10, 2 points, 13.Mais si on a un index différent, par exemple si on utilise l'email,l'oc va nous permettre de récupérer une rangée à partir de l'email.
00:05:25 :Donc dans ce cas-ci, ce serait avec une chaîne de caractère.Je vais vous montrer ça, je vais faire une variable que je vais appeler df.email et qui va être égale à df.setIndex.
00:05:33 :Et on va utiliser donc la colonne email pour modifier l'index et utiliser l'email à la place des numéros ici.Donc si j'affiche df.email et je vais utiliser head, vous voyez que cette fois-ci, on a bien l'email qui est utilisé comme index.
00:05:54 :Donc je vais copier cette adresse mail ici, je vais la mettre sous forme de chaîne de caractère dans les crochets de l'oc ici.Je valide avec shift-entrée et là vous voyez qu'on se retrouve avec un objet qui, si vous avez bien suivi, est un objet qui est un petit peu particulier
00:06:07 :puisque ce n'est plus un DataFrame mais bien un objet du type série.Donc si je fais type de tout ça, on a bien une série ici.
00:06:14 :Et donc qu'est-ce qu'on a dans cette série ? Et bien on a tout simplement le nom de la colonne cette fois-ci.Donc vous voyez que dans la série tout à l'heure, on avait des nombres et cette fois-ci, on a le nom de la colonne.
00:06:24 :Donc quand avec l'oc, on va chercher une entrée précise dans notre tableau, donc une rangée précise dans ce cas-ci,on va avoir dans notre série le nom de la colonne et les valeurs qui sont associées.
00:06:33 :Donc là encore, on a un objet de type série avec, comme je vous disais, un index et des valeurs.Si on veut récupérer uniquement les valeurs, on peut utiliser Values.
00:06:41 :Et là, on se retrouve avec un Array qui nous permet de récupérer toutes les valeurs qui sont associées à cette adresse email.Là encore, on pourrait utiliser ToList pour transformer cet objet Array en objet Python qui est une liste Python tout simplement.
00:06:55 :Et là, on retrouve toutes les valeurs qui sont associées à cette email.On peut bien entendu avec l'oc aller chercher plusieurs emails différents.Là, on est allé en récupérer un seul, mais tout comme tout à l'heure, on est allé récupérer différentes informations en allant de 10 à 13,et bien on pourrait sélectionner plusieurs adresses email avec l'oc.
00:07:13 :Donc je vais copier cette ligne ici, dfEmail, et je vais rajouter une adresse email.Donc je vais juste réafficher dfEmail pour voir ce que j'avais comme adresse.
00:07:20 :Donc on va aller en chercher une autre, par exemple celle-ci en plus.Donc je vais remettre mon .loc, l'écrocher, et cette fois-ci, on va passer une liste qui va contenir plusieurs éléments.
00:07:29 :Donc on va passer une première adresse email, et on va récupérer notre deuxième adresse email qu'on avait précédemment, et la mettre ici.Donc là, on utilise l'oc de nouveau, avec un premier crochet ici qui s'ouvre et qui se ferme, et qui va contenir une liste avec deux adresses email.
00:07:52 :Donc là encore, vous voyez l'importance de bien comprendre le type d'objet que l'on a.Si vous n'êtes pas sûr, là encore on fait un type, mais vous voyez avec l'affichage qu'on a une indication.
00:08:07 :Donc si j'enlève le .values, là vous voyez quand on a juste deux éléments comme ça, ça indique qu'on est en présence d'une série.Et quand on a un tableau comme ceci, ça nous indique qu'on est en présence d'un DataFrame.
00:08:18 :Si vous n'êtes pas sûr, là encore vous utilisez la fonction type.Donc vous voyez que l'ox n'est pas forcément pour aller cibler des éléments qu'avec un nombre, ça peut être en fait également des chaînes de caractère.
00:08:28 :Donc ça va dépendre en fait de ce que vous utilisez comme index dans votre DataFrame.Et également l'ox, ça nous permet de récupérer une seule donnée ou plusieurs données.
00:08:44 :Donc là on va cibler les deux rangées dans mon tableau qui correspondent à ces deux adresses email.Donc voilà comment récupérer des données précises à l'intérieur de notre DataFrame,que ce soit avec un range ici comme ce qu'on avait au début ou avec des chaînes de caractère quand on a une adresse email.
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.