Session du 13 octobre 2022 à 20h00
Data Science & IA
Développement Web & Frameworks
Librairie Standard & Modules
Deviens membre Premium magic_button
Cette session de mentorat est réservée aux membres Premium. Rejoignez-nous pour accéder à toutes les rediffusions des sessions de mentorat !
Premium
- check +100h de formations
- check +180 exercices de code
- check +100h de mentorats en rediffusion
- check 20 projets
- check Mentorats groupés hebdomadaires
- check Support individuel avec nos mentors
Découvrir Streamlit, Plotly et Pandas
Introduction pratique à Streamlit pour créer des applications data interactives avec Pandas et Plotly, et aperçu des prochaines étapes possibles vers le machine learning.
00:00:00 :Je vais essayer de mettre au plus gros et puis...Ouais c'est ça.Bah du coup Thibault tu veux dire quelque chose peut-être?Ouais bah je peux vous expliquer pourquoi ça a bugué, ça peut être un truc intéressant,vous voyez c'est le genre d'effet de bord qu'on prévoit pas,j'avais ce que je me suis rendu compte en fait que les...
00:00:24 :Tiens d'ailleurs, ouais il va falloir que... Ouais il y a des petits bugs là.Parce que les sessions de mentorat étaient affichées à minuit et du coup j'ai corrigéça pour que ça s'affiche bien à 20h dans le back-end de Docstring,le problème c'est que du coup à l'inverse je le récupérais juste les prochaines sessions
00:00:45 :et du coup bah passé 20h ils trouvaient plus la session,donc c'est pour ça que le lien ne s'affichait pas.Donc voilà, un truc que j'avais pas prévu donc je vais aller fixer ça.
00:00:54 :Mais là je pense que c'est bon, les gens ont accès au moins.Donc voilà, mais sinon rien de spécial à dire, après comme je t'avais dit,donc là Péa il va présenter Streamlit, qui est une bibliothèque qui permet de faire des graphs notamment,et c'est une bibliothèque que je veux, qui sur ma to-do liste de choses à regarder depuis très longtemps,
00:01:23 :et du coup c'est ça, je vais regarder avec intérêt la rediffusion.Je pourrais pas rester là ce soir mais je vais regarder ce que tu fais.
00:01:34 :La pression.La petite pression ouais, pas de souci.Ok, voilà.Un petit mot.Du coup je peux commencer ou c'est bon?Oui vas-y, let's go.
00:01:51 :Bah du coup juste pour, en introduction de Streamlit, ce qu'on va voir ce soir.Ok, n'hésitez pas à me dire dans le chat si il y a des choses que,si le son va pas, si le partage va pas, ou quoi que ce soit, n'hésitez pas à me le dire.
00:02:10 :Et juste si c'est possible, si vous avez un micro c'est super, vous pouvez interagir,mais si vous pouvez le couper quand vous parlez pas.Est-ce qu'on entend?
00:02:25 :Ouais on t'entend Gabriel.Papa?Je vais le couper.Ça marche, merci.Est-ce qu'il reste le prononçage?Je crois qu'il reste, c'est le pseudonyme Abouda qui a un micro encore allumé.
00:02:40 :Est-ce que tu peux le couper s'il te plaît?Oui.Je vais le couper.T'as un petit icône en bas à gauche à côté du micro.
00:02:58 :A gauche?Ouais, attends si tu permets je le coupe moi-même, je peux le faire de l'interface.Ok.Du coup, juste pour vous faire une petite démo de Streamline,donc ça c'est une application que j'avais faite pour mon boulot,donc je peux même, en fait je peux vous montrer à quel point c'est puissant,
00:03:24 :là je vous envoie le lien, vous pouvez y accéder normalement si vous cliquez dessus,c'est en ligne, il n'y a pas de configuration à faire, il n'y a rien du tout.
00:03:32 :Allez-y, cliquez sur le lien, dites-moi si ça fonctionne bien.Et voilà, donc vous voyez, moi je l'ai déjà dit dans la communauté,je ne fais pas du tout de CSS ou quoi que ce soit,moi je m'intéresse surtout au back-end, je ne suis vraiment pas doué en CSSet je mets beaucoup de temps pour faire quoi que ce soit,
00:03:49 :sans trending ou quoi, je pense que ceux qui sont en train de se casser les dents sur le CSSils voient ce que je veux dire.
00:03:55 :Et du coup, je trouve que Streamline c'est vraiment superpour faire des applications plutôt orientées data,à la base c'est vraiment, enfin c'est comme disait Thibaut,c'est pour les graphes et tout ça, mais graphes data, c'est orienté pour ça,c'est pas pour faire, vous n'allez pas faire comme les projets sur la plateforme,
00:04:16 :des to-do list ou des choses comme ça,là c'est vraiment pour présenter de la data, pour la traiter, etc.À la base, c'est pour faire du machine learning.
00:04:25 :D'ailleurs, dans une prochaine session, peut-être qu'on pourra introduirequelques concepts de machine learning avec la librairie Scikit-learn,parce que là j'ai créé un faux data frame pour l'application aujourd'hui,mais on pourra dans la prochaine session, ou une autre, je ne sais pas,effleurer les possibilités qu'offre Scikit-learn, parce que c'est énorme.
00:04:46 :Et comme ça on pourra essayer de développer un peu ça.Donc voilà comment ça se présente, en fait Streamline, on va en faire une,mais là c'est juste pour vous montrer ce qu'on peut faire.
00:04:56 :Vous pouvez définir un titre assez facilement, etc.Ici vous pouvez définir des boutons checkbox.Vous n'en faites pas pour le fond de l'application,si vous ne comprenez pas, il n'y a pas de soucis,c'est parce que c'est dans mon domaine professionnel.
00:05:08 :Donc là en gros, l'application calcule une hauteur de vague,dans l'océan, une hauteur de vague en fonction de la profondeur,de la vitesse de vent et le fetch.
00:05:19 :Le fetch en fait c'est juste la distance sans obstacleque peut avoir une étendue d'eau.Donc en fait c'est une distance qui permet au ventde distribuer son énergie à la surface d'eauet qui va créer une vague.
00:05:35 :C'est juste pour le contexte.Et en gros moi, pour mes collègues et pour faciliter le boulot,j'ai créé une application qui peuvent accéder comme je vous ai envoyé le lien,et puis c'est hébergé gratuitement sur le serveur de streamlit.
00:05:49 :Donc ici, moi j'ai mis différentes checkbox,donc en fonction du checkbox qu'on fait, il y a différentes options.Là on va juste utiliser le single, en fait batch c'est quand vous voulezfaire plein de simulations en même temps avec plusieurs paramètresau lieu d'en faire un seul.
00:06:02 :Et donc là dans l'idée, c'est si jamais vous ditesvoilà j'ai une water depth, une profondeur d'eau de 20 mètres,je peux la changer avec les boutons ici,ou je peux carrément mettre 25.
00:06:12 :Ici, wind speed c'est la vitesse de vent,donc si je lui dis bah j'ai 5 mètres par seconde,ou j'ai 10 mètres par seconde,et ici mon fetch, donc comme je vous dis, c'est la distanceque peut parcourir le vent sans obstacle pour transmettre son énergie à l'eau.
00:06:27 :Si je mets 100 mètres, et je fais run,et en fait il va me calculer la hauteur d'eau,enfin la hauteur de la vague et le tp.
00:06:35 :Bon ici c'est pas exactement une hauteur de vague et une période,c'est ce qu'on appelle des valeurs spectrales,mais bon c'est pas important pour le problème,c'est juste pour vous montrer un peu les possibilités qu'offre streamlit.
00:06:46 :Et ici si vous voulez faire en mode batch,donc là c'est pareil, vous dites, je veux démarrer d'une vitesse de vent de 3 secondesjusqu'à on va dire 20 secondes, avec tous les 1 seconde,et ici le fetch je veux le faire de 5 à 100 avec un step de 10.
00:07:03 :Donc là en gros c'est comme si je voulais lui dire,tu fais exactement le même calcul que j'ai fait sur le single,mais en fait t'en fais plein,et du coup je veux tous les résultats.
00:07:13 :Donc là comme ça si vous faites ça, vous allez pas le faire à la main, vous faites run.Donc là il calcule, hop, et voilà il a dit la matrice allait générer,et tu peux télécharger tes résultats dans un fichier csv,tout simplement ici, donc là je vous montre.
00:07:28 :Il est en train de s'ouvrir.Voilà donc ça c'est le...Il faut que j'enlève le plein écran.Ça c'est le fichier csv qui m'a téléchargé,donc vous voyez à quel point ça peut être puissant en fait,si vous avez une application qui tourne,vous pouvez la mettre à disposition à vos collègues,
00:07:48 :à vos amis, à votre famille, comme vous voulez,pour faire du traitement.Parce qu'en fait moi je me suis intéressé à ça notammentparce que je faisais un peu de...
00:07:58 :avec QtDesign, comme sur la plateforme ou PySide,vous pouvez faire des applications graphiques.Je me suis rendu compte que c'était un peu chiant quand vous voulezsans dénigrer du tout le PySide.
00:08:09 :C'est juste une option je trouve,quand on veut distribuer rapidement une application à quelqu'un,sans qu'il ait installé Python,qu'il y ait des galères de configuration etc.
00:08:19 :Voilà vous faites ça sur le web et puis vous partagez le lien.Vous, vous avez fait tout le back-end dans Python,vous avez juste une petite interface qui permet d'interagir avec l'utilisateur,il rentre des inputs etc.
00:08:29 :Et puis vous, vous pouvez...Lui il peut avoir accès à la puissance de Python,sans avoir à installer quoi que ce soit avec son navigateur web.
00:08:37 :Voilà pour la présentation,je vous propose qu'on fasse une petite application de ce type,pas...Il y aura moins de back-end derrière,parce que là c'est juste une démo.
00:08:51 :C'est pour que vous voyez un peu ce qu'on peut faire avec.Dites-moi dans le chat si ça vous va,est-ce que ça vous intéresse,de voir ça, de savoir faire ça?
00:09:06 :Ah bah c'est bon, il y a des gens qui sont hypés.Ok donc on va faire une petite application.J'ai déjà préparé la correction,mais on va le faire en live.
00:09:19 :Comme ça c'est plus...Je vais moins galérer sur des petits trucs.Pour ceux qui étaient là une fois sur la session que j'avais fait sur Panda,ici j'ai... Je ne vais pas le refaire ici,
00:09:32 :mais c'est pour vous montrer comment on peut générer aléatoirement.En fait, on va faire comme si on voulait créer une applicationqui permet de faire de la comptabilité.
00:09:41 :Je prends toujours l'exemple fil conducteur que j'avais déjà fait.Où en fait on génère un data frame avec des faux noms.Donc ici, si vous voulez, je vous mettrai le script à dispo,mais avec Beautiful Soup, on peut aller chercher une liste de noms.
00:09:54 :Sur Wikipédia, il y a une page Wikipédia ici,où on a tous les noms de la langue française.Donc on va chercher tout ça.On définit des professions,et en face de chaque nom, on met une profession aléatoire.
00:10:09 :C'est juste pour créer le data frame qu'on va utiliser.Et ensuite, ce qu'on fait,c'est qu'on va définir des salaires en fonction de la fonction.
00:10:18 :En fonction de la fonction, c'est un peu méta,mais en fonction de la profession.Par exemple, on se dit que si le job c'est direction,malheureusement c'est comme ça, mais le plus de sons...
00:10:32 :Est-ce que c'est que chez Gabriel ou c'est chez tout le monde?Vous m'entendez toujours? Dites-moi dans le chat.Ok, ça marche.Merci pour vos messages.
00:10:47 :Donc là, en gros, malheureusement la vie c'est comme ça.Les gens qui sont dans la direction,j'ai mis un salaire qui varie entre 3000 et 4000,en comptabilité entre 2500 et 1999, etc.
00:11:00 :En gros, c'est juste pour définir des datasqui varient en fonction d'un autre paramètre.Parce que comme je vous l'ai dit, si on veut voir du machine learning,pour une prochaine session, il faut quand même des datas qui parlentet que ça ne soit pas complètement aléatoire, sinon on ne verra rien.
00:11:18 :Donc en gros, j'ai juste créé mon data frame.Je vais d'abord faire... Prenez l'habitude de créer un environnement virtuel.Est-ce que c'est assez grand pour vous?
00:11:31 :Ok, donc je crée un environnement virtuel.Pour ceux qui ne connaissent pas encore, vous inquiétez pas,vous verrez ça dans la formation.C'est juste pour avoir toutes les librairies que je veux,pour mon projet. Donc j'ai créé mon environnement virtuel.
00:11:52 :Là je l'active.Source, range, main, activate.Je vais installer toutes mes...les librairies dont j'aurai besoin.Ponda, du coup Streamlit,et Plotly. On va faire des graphs interactifs après.
00:12:13 :Je pense qu'on est bon.Ok, j'aime bien aussi faire un...installer Hippiton dans mon environnement virtuel,comme ça moi je mange tout à partir de Hippiton.
00:12:25 :Ok, donc imaginons on a déjà créé...je peux le refaire si vous voulez.Je vais supprimer.Ok, donc on va faire run.Ok, donc là il m'a généré mon fichier CSV.
00:12:46 :Juste pour vous montrer...je peux même le montrer directement là-dessus.Voilà, donc ça c'est mon DataFrame.C'est mon DataFrame, donc là j'ai les noms,Adoni, Abéline, etc.
00:13:03 :La profession qui a été prise aléatoirement,donc elle est en compta, elle est en RH,elle a une direction, et puis il y a le salaire associé.
00:13:12 :Voilà, c'est pour vous voyer un peu le DataFrame,mais c'est pas le but de l'exercice.Nous le but de l'exercice, ça va être de...créer une petite application streamlit,donc vous allez voir c'est assez simple.
00:13:26 :Bon, je vais rester là-dessus.Du coup on va créer...je vais l'appeler comptaApp.pyApp.pyOk, donc c'est simple, on commence par importer streamlitas ST.
00:13:50 :Pour ceux qui ne connaissent pas,en fait on importe une bibliothèque sous l'alias ST,qui permet après d'accéder à tous les modules,à toutes les fonctions de la librairie streamlit.
00:14:01 :Ok, ensuite on peut faire...ça utilise le langage Markdown,je ne sais pas pour ceux qui connaissent,mais en gros Markdown c'est un peu...c'est ce qui permet d'écrire des fichiers,vous savez les readme etc,ils sont souvent écrits en Markdown.
00:14:19 :Un Markdown c'est...je vais faire un...c'est un truc qui permet de...ça fait du HTML, mais avec un autre langage plus simpleet plus lisible.
00:14:31 :En fait en HTML si je voulais faire un titre,j'écrirais comme ça,c'est H1je fais H1et je mets mon titre.Voilà, ça c'est du HTML, vous connaissez pour ceux qui en font.
00:14:47 :En streamlit c'est une librairie que tu dois installer.Mais bon, elle existe dans les dépôts officielset elle est mise à jour, il n'y a pas de soucis.
00:14:56 :Donc le fichier readme, ici par exemple,si vous voulez mettre un titre, là vous mettez un seul dièse,si vous voulez mettre un sous-titre, c'est un autre machin.
00:15:05 :Donc c'est juste pour... on s'en fout.Juste pour montrer la visualisation, vous voyez là j'ai un titre.C'est juste pour vous dire que streamlit utilise ce langagepour écrire des choses.
00:15:17 :Donc si je fais st.write,je vais lui mettre un titre,bienvenue...Bon je vais sûrement faire des fautes de frappe, pas tout va.Bienvenue sur l'app.
00:15:32 :Conta.Ok, et donc là déjà ça devrait fonctionner.Yes.Juste pour relancer, si vous faites streamlit runle nom de votre module,vous allez avoir un serveur de développement,un peu comme celui que vous avez quand vous faites du Django.
00:15:54 :Donc là c'est sur le localhost,vous voyez ici sur le port 8501.Après si on a le temps, ou sinon dans une autre session,je vous montrerai comment on peut faire pour la mettre en ligne facilement.
00:16:04 :Il suffit de la mettre sur GitHub et il va aller chercher facilement.Mais bon je vous montrerai à la fin si on a le temps.
00:16:09 :Et sinon je vous ferai un enregistrement pour vous montrer comment on fait.C'est hyper simple.Donc voilà, vous voyez que juste en quelques lignes,on a déjà un serveur qui tourne avec l'application, etc.
00:16:20 :Et maintenant on n'a plus qu'à s'amuser un peu avec notre application.Donc je regarde juste un petit peu dans ce que j'avais prévu de vous dire.
00:16:32 :Upload file.Ok.Donc on va commencer par direqu'on aimerait bien avoir une possibilité d'uploader un fichierqui correspondrait à votre base de données, à votre CSV,dans lequel vous avez toutes vos données, les salaires, etc.
00:16:56 :Donc pour ça on va dire envoyer votre fichier.Et en fait ça va être votre data frame,qui va être le fichier que vous allez uploader.
00:17:18 :Je ne sais pas si c'est clair.Excusez-moi.Donc vous faites ça.Et ici, le truc c'est que si vous utilisez ça, il va dire...Je vais essayer de vous mettre les messages d'erreur.
00:17:38 :Vous mettez à jour.Là en fait vous pouvez directement...Vous voyez, il a créé...Attendez, je vais vous montrer, je vais le commenter.Vous mettez à jour ici.
00:17:51 :En fait il met à jour en live.Donc là pour l'instant il n'y a rien, parce qu'il a juste ST.Write.Dès que j'enlève ça, il comprend que je veux uploader un fichier.
00:18:01 :Donc là vous voyez j'ai un browser et tout ça,sans vraiment beaucoup d'effort.Attendez parce que je me mets en double écran.Désolé parce que je veux voir en même temps, du coup je ne pratique pas.
00:18:13 :Ouais pas de soucis Gabriel, c'est fait pour ça les sessions.Et après c'est enregistré de toute façon, donc tu peux regarder après.Donc en fait vous voyez là j'ai un uploader qui me permet de choisir parmi les fichiers.
00:18:25 :Donc moi je vais lui dire, je veux ma datacenter.Je vais lui dire, je veux ma datacenter.Je vais lui dire, je veux ma datacenter.
00:18:31 :Je vais lui dire, je veux ma datacenter.Je vais lui dire, je veux ma datacenter.Donc voilà j'ai un uploader qui me permet de choisir parmi les fichiers.
00:18:39 :Donc moi je vais lui dire, je veux ma datacsv transférer.Et voilà j'ai uploadé mon fichier.Bon maintenant il faut faire quelque chose avec.Du coup on va dire if...
00:18:47 :Il faut nommer, il faut définir un objet.Parce que sinon vous n'allez pas upload...Upload file.Et maintenant upload.Parce qu'en fait si je ne fais pas ça, je vais vous montrer.
00:19:09 :Si je dis par exemple directement df égale pd.readcsv upload file.Je ne vais pas faire à chaque fois, mais c'est pour vous montrer la logique.
00:19:25 :Donc si je fais ça, il va sûrement m'envoyer un fichier.Parce que vous voyez en fait, je lui dis, ce widget là,widget, j'espère que ça vous parle,vous verrez quand vous faites du...
00:19:41 :du Django, un widget c'est un endroit interactif dans votre HTMLqui permet de faire des select box par exemple, des choses comme ça,à gérer avec du javascript.
00:20:05 :Donc là en fait mon widget il existe,par contre je n'ai rien uploadé.Donc c'est pour ça que ici quand je veux faire quelque chose avec,il dit bah non, tant que tu n'as pas uploadé, il faut faire quelque chose.
00:20:15 :Donc il faut juste lui permettre la possibilité d'avoir un uploader,mais tant qu'on n'a pas uploadé quelque chose, on ne peut rien faire.Donc ce qu'on dit c'est if upload file,donc sous-entendu si ce n'est pas non,et bien on veut lire le pdf, la base de données en CSV, qu'on lui a défini.
00:20:35 :Donc moi je lui définis le séparateur,je lui dis que c'est des points virgules,et je lui dis index call égal 0,parce qu'en fait si je ne fais pas ça, quand on importe un data frame,il va créer une colonne qui correspond aux index.
00:20:51 :Bon c'est pas important ici pour le truc.Donc on va relancer.Normalement je n'ai plus de soucis,donc là si je fais both file et que je vais chercher mon data frame,ici vous voyez j'ai ma data.
00:21:08 :Maintenant on va faire des choses avec,on va par exemple se dire que ça serait bien de pouvoir l'afficher,avec un truc, si je fais juste st...
00:21:19 :il y a quelque chose qui s'appelle data frame, et que vous faites df,il va l'afficher gentiment,il faut que je le reload,donc là il m'affiche gentiment mon data frame,donc c'est quand même assez...
00:21:34 :vous voyez qu'il y a vraiment très peu de configuration à faire,comme ça vous pouvez vous concentrer juste sur le backend,ici il y a des petits trucs interactifs,là vous pouvez le mettre en plein écran par exemple.
00:21:43 :Mais on peut se dire qu'on n'a pas trop envie d'avoir affiché notre data frame,on veut juste savoir qu'il a été loadé,et puis peut-être on veut visiter nos data.
00:21:53 :Donc pour ça on peut utiliser ce qu'on appelle un expander,donc vous dites with, ça marche comme un context manager,quand vous mettez des données dans un fichier ou des choses comme ça,c'est pareil, vous voyez l'utilisation de with.
00:22:07 :Donc with st expander,ici je vais générer une erreur volontairement pour vous montrer,pour que vous preniez l'habitude,en fait quoi que vous fassiez dans...
00:22:24 :dans trimleet,quand vous utilisez quelque chose ici,là en plus ce qui est bien c'est que là vous êtes sur le serveur de développement,donc de débugage, un peu comme dans Django,il vous donne le message d'erreur.
00:22:38 :Donc en fait il dit...bon c'est peut-être pas très clair le message,mais en gros il dit qu'il manque des arguments.Et en fait quoi que vous fassiez souvent,quand vous avez des choses comme ça,il y a toujours le premier argument de la fonction,il faut que ça soit le label de votre...
00:22:54 :vous voyez ici par exemple quand j'ai fait file uploader,j'ai dit envoyez votre fichier,et envoyez votre fichier, c'est ce que vous voyez ici.Et si vous ne mettez pas ça, en fait il ne comprend pas,il lui faut un label.
00:23:06 :Je vois qu'il y a des gens qui arrivent.Je crois qu'il y a quelqu'un qui essaye d'arriver,mais je n'ai pas pu le faire entrer.
00:23:20 :Donc voilà, c'est le label.Donc il dit, vous dites par exemple,voir vos données,et en fait il va vous créer...il va vous créer...
00:23:34 :vous voyez donc il m'a apporté mes données,et ici il m'a créé automatiquement un bouton qui permet...donc c'est un expander,parce que quand vous cliquez dessus, il s'étend,et voilà, comme ça vous pouvez un peu cacher vos données,sans avoir à les voir tout le temps.
00:23:50 :Donc ça je trouve que c'est sympa.Et qu'est-ce qu'on peut vouloir faire aussi?On peut se dire,ça serait pas mal de pouvoir filtrer,par exemple,interactivement,le tableau en disant,je ne veux pas...
00:24:05 :je ne veux que les salaires qui sont au-dessus de 1000 par exemple.Et ça on peut le faire de manière interactive,avec un slider.Vous voyez des fois quand vous allez sur des sites internet,et que vous déplacez un bouton,ça on peut le faire.
00:24:18 :Donc,on va dire que le filtre,le filtre salarié,on va dire que c'est,ça va être le résultat du slider,donc on va définir le label,on va dire,valeur minimum de salaire,valeur minimum de salaire,attendez je vérifie bien que c'est comme ça,ouais.
00:24:57 :Et en fait il faut lui définir les bornesde la valeur minimum,et de la valeur max,en fait de où à où il va le slider.
00:25:04 :C'est assez logique.Donc nous on va lui dire,tu pars du minimum du salaire,bien sûr,.max,et il faut lui mettre un entier,sinon il n'aime pas.
00:25:18 :Ok,je vais réduire un peu ça,je n'en ai pas besoin pour l'instant.Donc mon slider,ça c'est la valeur minimum de mon slider,et la valeur max de mon slider,ça va être la valeur max du salaire.
00:25:38 :Ok,et du coup maintenant ce qu'on va lui dire,c'est que,tu ne vas pas m'afficher mon data frame en fait,tu vas m'afficher mon data frame filtré.
00:26:04 :st. frame,et on va lui dire,ça va être df,pour lesquels mon salaire,il est plus grand ou égal,à filter salarié.Ok,et donc là maintenant sous vos yeux,hé bah oui,vous allez voir le résultat.
00:26:31 :Donc là on a toujours notre expandable,expandable,notre truc qui se,espèce d'accordéon,et ici on a,les,le filtre par salaire,donc là vous voyez qu'il n'y a aucun filtre appliqué,il y a tout,j'ai mes 366 valeurs,mais ici dès que je lui mets,voilà je veux en fait tout ce qui est au dessus de 2000,
00:26:54 :voilà ça commence à diminuer,vous voyez j'ai des sauts parce que,parce que j'ai tout,vous voyez il commence,en fait au plus je filtre,donc en gros je lui dis,en fait le filtre ici me dit,bah en fait moi je vais laisser à l'air que,qui sont plus grands que 3204,
00:27:11 :donc vous voyez qu'au bout d'un moment en fait,on se retrouve que avec des gens de la direction,parce que petit à petit,voilà on perd,on perd des gens,dans le,dans le truc.
00:27:21 :Donc voilà ça je trouve que c'est intéressant,ça fait un peu des trucs interactifs,vous voyez sans trop d'efforts,je sais pas pour ceux qui font un peu de CSS ou du Javascript,moi coder ça à la main,ça me prendrait des plombes et ça serait affreux,donc je trouve que c'est pas mal,
00:27:37 :en fait pour les gens qui aiment bien faire que du backend,ça c'est vraiment une solution,magique.Qu'est-ce que je voulais vous montrer ensuite,attendez je regarde,en fait il y a vraiment plein de trucs qu'on peut faire,donc moi je vous,j'avais fait un petit,un petit tri,
00:28:02 :il me semble que tu peux faire ça avec range,qu'est-ce que tu veux dire par là?Ah en CSS,oui ok,oui oui certainement,certainement,mais moi je t'avoue que en CSS je suis vraiment une bille,du coup je te crois sur parole.
00:28:28 :Alors qu'est-ce qu'on peut faire,ah oui il y a un truc qui est pas mal aussi,donc en fait comme je vous l'ai dit,c'est vraiment orienté data,donc on peut faire un peu à la,vous savez des dashboards,des tableaux de bord un peu avec des indicateurs,donc nous ce qu'on peut faire,
00:28:45 :pour ça on peut utiliser,donc là c'est pareil,en CSS vous utiliseriez du flex,colon ou je sais pas quoi,là il suffit juste de définir trois colonnes,je crache pas du tout sur le CSS,je respecte les gens qui font du CSS,mais c'est juste que moi je trouve ça vraiment hyper compliqué à maîtriser,
00:29:07 :et du coup je me lance pas là-dedans.Du coup on peut combiner un peu,donc on peut dire que sur,donc là si je fais,on peut utiliser col1.metric je crois,
00:29:24 :et en fait metric je vais vous dire après ce que ça fait,en fait il y a trois valeurs dans la metric,et puis je vais vous montrer,donc on donne la valeur,on voudrait afficher le salaire maximal par exemple,tfmax,salaire en max,ah oui pardon je me suis trompé,
00:29:51 :il faut donner le label,salaire max,voilà,et il y a un dernier truc,il y a un dernier argument,je vais laisser comme ça,parce que je sais plus exactement ce qu'il fait,donc on a fait trois colonnes,donc on va dire qu'on va faire le min,et salaire moyen,
00:30:21 :donc là salaire min,et min,en fait ici je lui dis,tu vas chercher le max dans la colonne salaire,le min dans la colonne salaire,et le min moyen en anglais.
00:30:35 :Merci Yannick pour les précisions,j'espère que,j'imagine que ça peut aider d'autres personnes aussi,alors on retourne,on va voir le résultat,qu'est ce que ça nous donne,donc on a envoyé nos datas,on va voir les données,et ah oui j'ai fait une bêtise,j'ai mis en fait ça,
00:31:09 :je ne le mets pas dans mon expander,je veux l'afficher quoi qu'il arrive,sans que j'ai besoin d'afficher mon expander,donc je vais chercher,voilà,pourquoi il n'a pas pris,ah oui parce que je me suis trompé ici,colonne 2,colonne 3,on y retourne,voilà,donc en fait on a salaire max,
00:31:39 :bon c'est pas très beau,je vais mettre des rounds,qu'est ce que j'ai foutu,ouais c'est ça,je n'avais pas changé de numéro des colonnes,ok,donc là vous voyez ça fait un peu plus,déjà c'est plus sympa,plus agréable à lire,et en fait ce que fait le truc Metrix,
00:32:39 :il prend trois arguments,donc il prend le label,la valeur qu'on veut lui mettre,et ici la dernière valeur en fait,en fonction de son signe,si c'est positif ou négatif,il va mettre automatiquement en vert ou en rouge,donc je trouve que c'est un truc sympa,donc nous par exemple ce qu'on peut dire,
00:32:54 :c'est on voudrait essayer de voir,de combien est éloigné le salaire maximal,de la médiane,la médiane dans des datas,c'est en gros la valeur qui coupe le jeu de données,exactement en deux parties égales,par exemple,je ne sais pas,si j'ai plusieurs données,et que je dis ma médiane c'est 22,
00:33:20 :ça veut dire que 22 c'est la valeur qui me dit,en dessous de 22 j'ai 10 valeurs,et au dessus de 22 j'ai 10 valeurs aussi,donc en fait la médiane c'est quelque chose,qui est assez représentatif de votre échantillon,ce n'est pas une moyenne,une moyenne c'est différent,
00:33:36 :donc là c'est vraiment une moyenne,donc nous ce qu'on va dire,on va essayer de voir à quel point est écartée la valeur max,de la valeur moyenne,pour voir en gros si vous voulez voir en data,à quel point les inégalités sont importantes,et bien vous faites ça,
00:33:50 :vous regardez le max par rapport aux mines,j'imagine que si on regardait le salaire du président,en fait il serait très très loin de la valeur médiane,parce que la majorité des gens,ils voient que c'est ça,les courbes en cloche c'est exactement ça,en gros la médiane c'est,
00:34:15 :après c'est un peu différent,c'est un peu différent de là,pour les courbes en cloche,voilà distribution normale,on parle d'espérance, d'écart-type etc,mais bon on va pas rentrer dans le détail,donc là ce qu'on va faire,j'arrête de parler,je vais faire round,je vais lui dire tu vas me chercher la différence entre mon salaire max,
00:34:42 :et puis ma valeur mine,j'essaie de pas me gourer dans les parenthèses,pendant que je parle en même temps,j'ai peur de faire des conneries des fois,ok donc là vous voyez en fait ça veut dire que mon salaire max,il a 1428 euros au dessus du nombre qui représente le mieux l'échantillon de données,
00:35:13 :on peut faire pareil avec le minimum cette fois-ci,alors donc là on va dire que c'est la valeur médiane moins la valeur minimum,et on va lui mettre un moins devant parce que ça va dans l'autre sens,et puis pour la valeur moyenne on va juste simplement chercherà quel point la valeur moyenne est écartée de la valeur médiane,
00:35:54 :et on va faire ça en valeur absolue,de toute façon ça sera forcément positif du coup,je vais juste faire mine,si je me suis planté en fait,bon c'est juste un exemple,peut-être que je me suis un peu fait chier,mais bon c'était juste pour illustrer que je trouve que ça fait un beau dashboard,
00:36:34 :et vous imaginez en fait si jamais vous,je prends souvent cet exemple là,on a Seb parmi nous qui est comptable,en gros imaginez vous développez cette application,vous l'envoyez à vos collègues,eux ils ont juste à uploader leur fichier de données,et ils peuvent directement avoir ces statistiques là rapidement en ligne,
00:36:55 :comme ils veulent et puis c'est tout le temps disponible,donc c'est assez intéressant,voilà donc ça c'est pour streamlit un peu la base de streamlit,donc là vous voyez en quelques clics on a un dashboard facilement,voilà est-ce que,ça donne trop plein d'idées,c'est cool,j'ai deux options en fait,
00:37:21 :soit je vous montre les graphes interactifs,oui oui c'est gratuit,ou soit je vous montre comment on fait pour la mettre en ligne en production rapidement,donc dans le chat dites moi ce que vous préférez voir,j'ai un mettre en ligne,deux mettre en ligne,trois prod,voilà,ok,
00:37:44 :donc pour ça il faut utiliser GitHub,j'espère que je ne me suis pas emballé,non,je l'ai déjà fait régulièrement,mais souvent quand on veut montrer que ça foire,ok,donc,et d'abord ah oui,avant je vais vous montrer tout ce que je vous ai montré là,si vous allez dans streamlit.io,
00:38:03 :non pas blog,doc,vous allez dans API reference,et là vous avez tout en fait,tout ce que vous pouvez avoir,tous les boutons,là je vous en ai montré qu'un petit peu,j'avais pas vu,c'est quelqu'un qui a écrit les deux,select box etc,en fait vous avez plein d'exemples,
00:38:25 :allez visiter la truc,en plus les gars de streamlit,ils sont hyper sympas,moi j'ai déjà discuté avec eux sur Twitter,pour leur montrer une application que j'avais fait,et ils m'avaient envoyé une petite carte comme ça,avec des petits,je ne sais pas si on voit,des petits autocollants,
00:38:50 :des petits goodies comme ça,c'est une startup,je crois qu'ils sont à Londres,ils sont vachement disponibles,si vous avez un bug,il y a un forum,ils sont très ouverts sur les réseaux.
00:39:06 :Oui, ça peut être auto-hébergé justement sur leur serveur,donc je vais arrêter de parler,et je vais vous montrer.Alors, comment on va s'y prendre?
00:39:24 :Je vais créer un repo GitHub,GitHub pour ceux qui ne connaissent pas,c'est un endroit pour héberger votre code gratuitement,et puis ça marche avec Git,qui permet de versionner le code,je crois qu'il y a sur la plateforme,il y a des trucs sur Git.
00:39:47 :Ok, donc on va créer un nouveau repo,attendez, j'ai réfléchi un peu,donc on va dire,je vais juste mettre ça,je vais initialiser avec un gitignore,je ne rentre pas dans le détail ici,parce que ce n'est pas l'objet,c'est ça l'intérêt,c'est pour distribuer l'application sans trop s'emmerder.
00:40:22 :Ok, donc là je vais créer mon repo,je vais récupérer,je vais quitter ça,attendez, j'essaie de ne pas faire n'importe quoi.Il faut bien faire attention de le mettre en public,le code, parce que si vous le mettez en privé ça ne marchera pas.
00:41:12 :Si ça marchera vous pouvez héberger,mais il faudra payer.Ok, donc là je suis dans mon repo GitHub,je vais refaire mon app.dy,donc là j'ai mon code.
00:41:37 :Ah oui, il y a un truc important,quand vous faites ça dans Streamlit,de toute façon c'est une bonne habitude à prendre,il faut toujours travailler avec des environnements virtuels.
00:41:49 :Donc il ne faut pas oublier de créer son environnement virtuel,donc ici je vais le refaire comme j'ai fait tout à l'heure.Je vais travailler dans mon environnement virtuel.
00:42:07 :J'installe,en fait ce que j'ai fait tout à l'heure,j'aurais dû déjà le faire dans un GitHub,mais c'était pour l'exemple.Pip install Streamlit, ok.
00:42:21 :Là il va me falloir Panda aussi.Ça va pour ceux qui débutent, vous n'êtes pas trop largué?N'hésitez pas, après c'est normal.C'est un peu compliqué.
00:42:50 :Là en fait les sessions de mentorat,ce n'est pas pour vocation d'être des cours,c'est vraiment un complément de la formation,ça fait partie de la formation de la plateforme,mais c'est vraiment pour vous, pour découvrir des choses,et plus tard peut-être quand vous le ferez vous-même,vous direz, je me souviens, j'ai vu ça déjà, ça me parle,
00:43:12 :c'est juste pour appréhender un peu les choses,ne soyez pas inquiet si vous ne comprenez pas,ici c'est normal.J'attaquais que les bases moi en plus pour l'instant.
00:43:21 :C'est super intéressant parce que dans mon métier de contrôleur de gestion,ça c'est totalement ce qu'il me faudrait en fait.Ah oui, tu…Tu quitteras Excel quoi.
00:43:30 :De toute façon quand tu découvres Python tu quittes Excel.Non mais après c'est vrai qu'il ne faut pas cracher sur Excel,ça permet de faire des trucs rapides et tout ça,mais c'est vrai que quand tu veux faire des stats,des choses un peu plus évoluées c'est bien.
00:43:42 :Pierre-André?Oui?Oui, juste petite question,le fait de, quand je te demandais tout à l'heuresi ça pouvait être auto-hébergé,c'est si par exemple tu as de la data un peu plus sensible,est-ce que tu as possibilité de l'héberger sur,d'héberger l'appli sur un serveur à toi en fait?
00:44:00 :Ah oui, parce qu'en fait moi d'ailleurs j'avais fait ça dans la boîte,en fait dans la boîte à laquelle je travaille,je ne pouvais pas mettre sur le web,donc en gros tu mets, si tu as un réseau, un wifi,un 192.168.1.22, je ne sais pas, c'est une connerie,
00:44:18 :tu peux lui dire en fait, c'est quand tu fais le streamlit,c'est ici que tu lui définis l'adresse IP du serveursur lequel tu veux le mettre,je ne sais plus exactement c'est quoi la manip,et puis tu peux définir aussi,attends je vais regarder,tu peux lui définir,
00:44:48 :tu peux lui définir le port et tout ça que tu veux utiliser,je regarderai en détail et puis je t'enverrai,mais sinon tu regardes,oui mais je regarderai, t'inquiète pas,je voulais juste savoir si c'était possible de le faire.
00:45:04 :Mais oui bien sûr c'est possible, je l'ai déjà fait,et puis ça tourne très bien en local,tu peux définir l'adresse IP et il va tourner dessus,moi j'avais une machine qui tournait tout le temps là au boulot,et puis les gens ils accédaient sans passer par internet.
00:45:14 :Ok, super, merci.Je t'en prie.Alors où est-ce que j'en étais?Maintenant qu'on a fait ça,est-ce que j'ai installé mon panda?Je fais un pip list.
00:45:35 :J'ai l'installer ou pas mon panda?Ouais si je l'ai fait.Et en fait une fois que vous avez ça,ça ne marchera pas si vous ne faites pas un requirement,donc pip freeze requirements.txt
00:45:55 :parce qu'en fait quand vous allez aller l'héberger sur les serveurs...Super Gabriel, c'est bien.Du coup voilà, pip freeze requirements.txt,ça permet de lister toutes les bibliothèquesqui sont dans notre environnement virtuel,et en gros de lui indiquer dans requirements.txt.
00:46:19 :Donc en gros ici quand je vais voir,vous voyez il m'a listé toutes les bibliothèques,et en fait ça, quand c'est hébergé sur le serveur de streamlit,lui il récupère exactement,il faut que le fichier s'appelle requirements.txt,
00:46:29 :et lui il installe toutes les librairies sur l'espace serveursur lequel vous hébergez votre app.Donc voilà, on a fait ça,donc normalement on devrait être bon.
00:46:41 :Donc maintenant l'étape d'après c'est d'aller sur streamlit,vous allez faire...Vous créez un compte, c'est gratuit,moi je l'ai déjà créé.Attendez, il faut que je le fasse avec Safari, parce que j'ai mes mots de passe dessus.
00:47:29 :Je vais pas me galérer à cause de ça.Attendez, il faut que j'aille chercher un mot.Ok.Donc là en fait c'est simple, vous allez arriver sur votre...
00:48:18 :Vous créez un compte facilement sur streamlit en faisant sign up,y'a pas de surprise, c'est gratuit.Et là vous dites, donc là c'est les apps que moi j'ai déjà faites,si vous voulez je vous en remontrerai une autre que j'ai faite après.
00:48:29 :Vous allez dans New App,et là vous lui...Je pense que quand vous allez créer votre compte, je me souviens plus très bien,mais il va vous demander votre compte GitHub.
00:48:39 :Donc si vous avez pas de compte GitHub, vous en créez un, c'est facile, c'est gratuit, pareil.Donc là en fait il dit dans quelle repository je vais chercher l'application.
00:48:48 :Donc là c'est le repo GitHub que j'ai créé tout à l'heure,compte à app.Ici il va chercher la branche,parce qu'en fait comme je vous ai dit, GitHub ça permet de versionner son code,donc en fait parfois vous avez un code pour lequel vous avez plusieurs branches,en fait vous faites une modification, hop vous créez une branche de votre code,
00:49:13 :comme ça vous modifiez pas celle qui marche, qui s'appelle la branche main,et vous avez une branche qui s'appelle,souvent on donne le nom de la nouvelle feature à la branche.
00:49:22 :Par exemple si vous avez une application qui fonctionne,et que vous dites bah j'aimerais bien ajouter la fonction de télécharger le fichier,et bah vous créez une nouvelle branche qui s'appelle Download File,et en fait vous allez faire tous vos développements sur Download File,et si vous avez un bug dedans,
00:49:37 :et bah vous aurez toujours votre branche main qui fonctionne bien.Et quand votre feature elle sera fonctionnelle,bah vous refusionnez avec la branche main.Mais bon ça c'est GitHub, vous verrez ça plus tard dans l'information.
00:49:51 :Donc là vous dites quelle branche vous travaillez,je peux vous montrer si vous voulez dans GitHub comment ça se présente.Ok donc là je suis sur mon compte GitHub,je pourrais vous montrer aussi un jour, peut-être ça peut être intéressant,pour ceux qui connaissent GitHub, c'est pour créer une page de profil assez sympa,
00:50:13 :qui décrit un peu tout ce que vous faites.Mais bon là c'est pas l'objet.Donc là si je vais dans mon repo que j'ai créé tout à l'heure,vous voyez ici j'ai bien mon code,pour l'instant, ah oui je l'ai pas,pardon c'est Siri,il s'est pas, j'ai pas encore mis, j'ai pas fait un push de mon code.
00:50:33 :Vous voyez tout ça, toutes les modifs que j'ai fait,désolé je vais un peu vite sur des trucs,mais c'est parce que c'est pas l'intérêt du jeu.
00:50:47 :Ok là si je mets à jour,donc là il a bien mon code,vous voyez maintenant il est en ligne,donc ça c'est mon code, c'est assez simple.
00:50:59 :Maintenant je retourne dans streamlit,où je vais peut-être mettre à jour,parce qu'il l'avait pas encore,ok donc mon repo, compta, main,et là vous voyez streamlit App,vous allez chercher le nom de votre fonction,enfin le nom du fichier qui contient ce qu'il faut.
00:51:19 :Donc moi c'est compta.y,et je vais mettre deploy,et donc là il est en train de tout déployer sur le serveur de streamlit.Après, c'est qui qui a posé la question?
00:51:45 :C'était par rapport à l'auto-hébergement,pardon c'était Yannick?Non c'était moi, David.Ah pardon, excuse-moi David.En fait, moi tu vois l'application que j'ai faite,il n'y a pas de données dans le code,tu vois ici si tu veux avoir ton code, même si c'est public,là il n'y a pas de données,
00:52:09 :en fait moi la donnée sensible c'est le fichier data.csv,donc en fait ce qu'il faut savoir c'est que streamlit,il marche par session quand tu upload un fichier,après quand tu quittes ton navigateur etc,il est effacé, il ne le garde pas en ligne.
00:52:28 :Bon après je comprends que pour des données un peu sensibles,c'est un peu embêtant de se dire que tu upload ça quelque part,mais normalement il n'y a pas de problème.
00:52:38 :C'est pas maintenu, de toute façon j'imagine que même au niveau de...tu ne dois pas avoir beaucoup de place non plus.Oui, quand tu as un compte gratuit,tu ne vas pas pouvoir uploader des gigas, ça c'est sûr.
00:52:49 :Et je crois même, tu vois c'est écrit ici,la limite par fichier c'est 200 méga.Ah d'accord.Voilà, donc l'app elle est en ligne,je peux vous l'envoyer dans le chat.
00:53:04 :Pourquoi il ne veut pas?Dites moi si ça fonctionne.Si vous voulez je peux vous envoyer aussi le fichier csv.Ça a l'air de fonctionner.
00:53:21 :Oui ça fonctionne, après il faut voir si ça fonctionne...Je vais faire moi-même ici.Ok, ça fonctionne.Je peux vous envoyer le fichier,ou sinon je vais vous envoyer le script,je ne sais pas si c'est dans le chat,pour générer les datas, comme ça vous pourrez le faire vous-même.
00:53:53 :Voilà, vous avez compris le truc.Et ce que vous pouvez faire aussi,c'est que vous pouvez directement la partager en faisant share ici.Voilà, je peux vous montrer une autre que j'avais faite,pour que vous voyez un peu les possibilités qu'offre streamlit.
00:54:24 :Si je reviens...Contes, etc...PDFmanip, c'est ça.Je ne sais pas si vous y travaillez...Ah oui, en fait comme on utilise des comptes gratuits,vous verrez que quand vous allez développer une application,il va dire qu'il met en sommeil votre application,tant qu'elle n'est pas visitée.
00:54:54 :Ça leur permet de sauver de la place,et là l'app que je suis en train de réveiller,ça fait longtemps que je n'ai pas été dessus,du coup il me l'avait endormie,il suffit juste d'aller sur le lien,et puis vous pouvez la réveiller.
00:55:09 :Là c'est en train de charger,je vais chercher un fichier qui pourrait être intéressant.J'essaie de trouver un PDF...Qu'est-ce que tu entends par autre hébergement classique,genre un serveur AWS?
00:56:03 :LWS, c'est quoi? Désolé je ne connais pas.C'est un hébergeur que j'utilise pour faire des sites,c'est basique.C'est un hébergeur serveur privé.Ah oui d'accord, en fait,je ne pense pas à un hébergeur classique,ça ne marchera pas.
00:56:26 :C'est pour ça que je pensais à AWS,quand tu me disais,parce qu'en fait AWS c'est des serveurs de calcul,donc il suffit juste que ton application...
00:56:36 :Je ne sais pas si vous avez déjà travaillé avec AWS,certains d'entre vous.C'est un peu comme des machines distantes.C'est cher, oui.Mais du coup, si tu as une machine qui fait tourner Pythonsur un serveur n'importe où,ça peut fonctionner.
00:56:51 :Moi j'utilise...J'ai des applications,je ne sais pas si vous connaissez ça.Ça c'est un Raspberry Pi.Et en fait, moi je fais tourner toutes mes applications là-dessus.
00:57:04 :Parce que du coup, c'est gratuit,et puis moi je contrôle...Après c'est des petites applications,ce n'est pas des foudres de guerre,les Raspberry Pi,mais ça coûte 35 euros un Raspberry Pi.
00:57:15 :Et vous pouvez faire...Donc moi je fais ça,je fais tourner quelques applications là-dessus.Donc là, une autre application,vous voyez ici,on peut créer une sidebar avec un dérouleur.
00:57:29 :Je vais aller voir après,je ne sais pas ce que c'est.Et vous pouvez dire, par exemple,l'extraction de texte.Donc en fait, là vous allez chercher votre fichier PDF.
00:57:39 :Est-ce que j'en ai un dans mes downloads?Mon attestation,je vais peut-être pas vous montrer ça.Voilà, ça c'est un PDF de mon boulot.Donc en fait,j'ai uploadé mon fichier PDF.
00:58:04 :Il me demande ce que je veux faire.Par exemple, je veux trouver des occurrences de mots.Donc moi c'est un fichier PDF en anglais.Donc si je dis « WAVE »,lancer la recherche.
00:58:13 :Donc là, il y a un loading.Ah, pas mal ça.Merci Samy pour l'info.Bon, ça prend un peu de temps.En gros, ce que je fais là,c'est un fichier PDF.
00:58:31 :Vous savez scanner.Du coup, je fais de l'OCR dessus.Pourquoi il n'a pas voulu?Bon, ça a bugué, désolé.Mais bon, c'était...Mais bon, je pense que vous avez compris un peu le principe.
00:58:49 :Et vous pouvez faire plein d'applications comme ça.Tant qu'elles sont publiques et hébergées sur GitHub, votre code,vous pouvez mettre autant d'applications que vous voulez.
00:58:57 :Voilà, on dépasse un peu le temps,mais il y a quelqu'un qui avait demandé pour avoir aussi les graphs interactifs.Je vais aller vite.Je vais vous montrer la correction déjà.
00:59:09 :Comme ça, ça ira vite.C'est pour vous montrer les possibilités.Où est-ce qu'on est?Correction.C'était ça.Elle est toujours là ou moins?La personne qui avait demandé les deux,je crois que c'était Jonathan Mass.
00:59:34 :C'était toi, je crois, Jonathan.Est-ce qu'il est encore là?Oui, il est encore là.Du coup, il faut que j'installe...Il faut encore que je refasse un environnement virtuel.
01:00:17 :Alors, ici, je vais chercher les datas que j'ai créées tout à l'heure.Ici, je vais chercher...Vous savez, dans le data frame, j'ai plusieurs professions.
01:00:35 :Ici, ce que je lui dis, c'est...Mais bon, elles se répètent plusieurs fois.Ok, je vais juste...Pourquoi il ne me le prend pas?J'ai bien installé pourtant.
01:00:53 :Ok, en fait, je vais créer un graphe interactif.J'ai créé un graphe interactif.Je ne sais pas si vous avez déjà utilisé Matplotlib,mais en fait, Matplotlib, ça vous donne un fichier PNG.
01:01:21 :Et là, c'est un graphe interactif.Donc là, j'ai créé les histogrammes.Comment se distribuent les salaires en fonction des professions?Et ce qui est vraiment bien, c'est que c'est interactif.
01:01:33 :C'est-à-dire ici, je peux cliquer sur les légendes et filtrer.Je dis, je veux juste voir la direction.Donc, en gros, si je regarde la direction,j'ai 20 salaires qui se situent entre 3400 et 3599.
01:01:45 :J'en ai 11 entre 3600 et bref.Et du coup, là, vous pouvez afficher plein de choses.Et ce qui est pas mal aussi, c'est qu'avec...
01:01:55 :Ici, donc là, je l'ai affiché, mais vous pouvez dire write HTML.Et en fait, il vous crée un fichier HTML directementque vous pouvez partager avec n'importe qui.
01:02:06 :Et comme ça, la personne a là un fichier interactif qui correspond au graphe.Donc, par exemple, moi, je peux...Ah, je pense pas que ça...
01:02:21 :Ouais, on peut pas mettre des pièges jointes, mais voilà.Par exemple, je pourrais vous envoyer le fichier si vous le désiriez.Puis vous garderiez l'interactivité.
01:02:30 :Ici, vous voyez, je peux filtrer, je peux zoomer.Après, je peux revenir.Voilà, peut-être que je ferai une session plus détaillée sur Plotly,mais c'est une librairie de graphique très puissante et interactive.
01:02:49 :Voilà pour la session d'aujourd'hui.Bien sûr, ça peut s'intégrer avec Django.Et en fait, ce qui est bien, c'est que tu as un truc...Tu peux l'exporter dans une div directement.
01:03:04 :Et du coup, tu l'intègres directement dans ton HTML.Mais c'est ça, en gros, c'est un des intérêts de Plotly,c'est de faire des HTML et tu peux les intégrer dans tes templates.
01:03:16 :Ouais, c'est intéressant, je l'ai déjà fait, ça marche bien.Et ce que je voulais vous montrer à la base aussi,c'est que je l'avais intégré dans l'application streamlit qu'on a fait juste avant.
01:03:28 :Ça s'intègre facilement.Ça s'intègre facilement, juste comme ça.Vous faites votre graphique et vous dites juste stplotlychart, comme ça.Je vais juste vous montrer...Bon, il galère.
01:04:13 :Mais bon, en gros, vous pouvez intégrer facilement votre truc, votre fichier.Simultaneous concurrence calls events.Bah, c'est cool si ça peut t'aider dans ton projet.
01:04:29 :Non, justement, c'est une librairie différente de matplotlib.Matplotlib, en gros, c'est du statique.Après, tu peux faire des trucs dynamiques avec matplotlib,mais c'est pas aussi interactif.
01:04:40 :En fait, j'ai sorti l'application, mais je partageais plus l'écran.Voilà, merci beaucoup à tous.Désolé pour l'heure qui a dépassé.Et puis, si vous avez des questions ou quoi, n'hésitez pas à...
01:04:54 :Ouais?Les autres, n'hésitez pas, vous pouvez partir si c'est trop pour vous.Je serai pas vexé.Juste, il n'y a pas de module sur les sites de Xtremes sur streamlit.
01:05:05 :Il n'y a pas de quoi?Il n'y a pas de module de formation précisément sur streamlit?Non, streamlit, il n'y a pas de module de formation sur la plateforme.
01:05:15 :OK, et ça, par contre, quand tu utilises streamlit,il faut déjà avoir un certain niveau, quand même.Bah, je sais pas...En fait, si tu connais Python, si tu connais les bases, je sais pas si t'as vu,mais ce qu'on a fait, c'est pas...
01:05:29 :Ouais, c'est pas hyper...Franchement, c'est accessible, mais c'est ça qui est vachement puissant,c'est que tu fais des choses assez propres au niveau du front-end,sans avoir besoin d'aller chercher des trucs hyper complexes.
01:05:41 :Parce que là, je suis vraiment au début des bases.Ah, mais tout le monde commence quelque part.OK, et je vois que tu fais ça sur Mac,donc pour les environnements virtuels, tout ça, il n'y a pas de problème sur Windows?
01:05:51 :Non, c'est exactement pareil.Et puis, c'est aussi l'intérêt de faire des environnements virtuels.Si tu développes quelque chose sur un environnement virtuel Windows,il suffit que tu sais, quand j'ai fait requirements.txt,
01:06:06 :en fait, si toi tu le fais sur ton Windows, et que tu génères ce requirements.txt,et que moi je veux que ton code fonctionne chez moi,j'ai juste à télécharger ton requirements.txt,
01:06:16 :du coup comme ça j'ai un renseignement de toutes les libres qu'il faut pour faire fonctionner ton code,et je les installe sur mon Mac.Après, forcément l'installation elle sera différente que sur ton Windows,mais au moins je sais quelle librairie est utilisée, quelle version, etc.
01:06:29 :D'accord, qu'est-ce qu'on va souvent dire pour la programmation Windows,c'est de la merde, mais il n'y a pas de problème, je peux travailler sur Windows.
01:06:36 :Non, non, attention, ça c'est des petites guéguerres de développeurs, etc.Tu peux faire avec, moi j'ai longtemps travaillé sur Windows,j'ai toujours ma machine Windows là à côté,et je travaille avec Linux, Windows, Mac, c'est...
01:06:49 :Non, non, ok, non, mais c'est...Non, non, franchement, il n'y a pas de soucis là.Je vais prendre du PC, je ne vais pas m'en racheter un quoi.
01:06:54 :Non, non, il n'y a pas de... Tu entendras toujours les guéguerres d'OS,de navigateur, de tout ce que tu veux.Ok, non, bah super, écoute, je ne vais pas...
Aucune occurrence trouvée pour « ».
00:03:11
Présentation streamlit