PowerBi - Créer un volet de navigation

Parfois, nous voulons une uniformité dans nos tableaux de bord...

Nous voulons que toutes nos pages aient un thème commun ou une facilité d'utilisation sur laquelle le client ou l'utilisateur final peut compter. En ce qui me concerne, j'aime que mes tableaux de bord aient un volet de navigation central qui permette aux utilisateurs non seulement de se déplacer dans les différents tableaux de bord, mais aussi de sélectionner un découpage commun qui peut être utilisé pour la plupart de mes tableaux de bord. Bien sûr, il peut arriver que nous devions modifier ce volet commun pour l'adapter à différentes visualisations ou options de découpage, mais la plupart du temps, la même structure peut être utilisée de manière très efficace. 

Pour commencer, créez des slicers pour chaque sélection de filtre sur laquelle vous souhaitez que l'utilisateur final puisse filtrer. Il est également important de noter que si un élément que je veux trancher existe à la fois dans la table des faits et dans la table des dimensions, je le prendrai dans la table des dimensions. La règle générale que nous voulons suivre est de presque toujours découper les faits en fonction des dimensions. 

Les trancheurs constitueront la base de la tête de filtre. 

Ensuite, nous devons construire le volet de navigation qui accueillera ces slicers. J'aime choisir une configuration de base de flèches de navigation, l'une pour revenir à la page précédente et l'autre pour avancer d'une page, un bouton personnalisé "Accueil" et un bouton "Q&A" pour permettre à l'utilisateur final de poser des questions directement sur les données. Ces boutons sont ensuite placés au-dessus d'une zone de texte pour inclure le titre de la page. Si vous perdez vos slicers derrière la zone de texte, ne vous inquiétez pas, nous verrons bientôt comment modifier l'ordre des couches. Vous pouvez choisir un autre chemin, ce que j'ai constaté, c'est qu'il y a un million de façons différentes d'accomplir la même tâche dans Power Bi. Si vous choisissez de ne pas avoir de flèches de navigation, ce n'est pas grave, faites ce que vous pensez être le niveau de fonctionnalité requis pour votre tableau de bord. 

Pour créer le bouton personnalisé "Accueil", il suffit de naviguer dans Ajouter un bouton et de sélectionner un bouton vierge. Cette option est très utile car elle vous permet de créer un bouton avec une image personnalisée liée à une action dans le tableau de bord. 

Pour lier ce bouton nouvellement créé à une action, cliquez sur le bouton et allez dans le volet Format du bouton, l'avant-dernière option est Action.

 Lorsque l'utilisateur clique sur ce bouton, il est dirigé vers la page PowerBi intitulée "Page d'accueil". 

Maintenant, un peu de ménage

Ajout de quelques étiquettes aux flèches de navigation et modification de l'arrière-plan pour qu'il corresponde à celui de la zone de texte. 

Ensuite, nous devons modifier les types de trancheurs pour les adapter au mieux au volet de navigation. Ce faisant, je vais également modifier le sélecteur d'année pour n'afficher que les 4 dernières années, car ce sont les données les plus pertinentes. 

Deslistes déroulantes pour la plupart des sélections constitueront une solution propre et facile à utiliser, avec des boutons pour les années afin d'ajouter un peu de variété. 

Le problème auquel nous sommes confrontés est que les listes déroulantes ont disparu derrière la zone de texte jaune, comme indiqué ci-dessous.  

Vous pouvez y remédier en modifiant l'ordre des calques. Cela se trouve dans l'onglet "View" et "Selection". 

Dans ce menu de sélection, nous pouvons modifier l'ordre de superposition des éléments du tableau de bord. Nous voulons déplacer la zone de texte contenant le titre vers l'arrière et déplacer les listes déroulantes vers l'avant. Pour ce faire, cliquez et faites glisser les éléments du menu latéral dans l'ordre souhaité.
 

Ilne reste plus qu'à regrouper tous les éléments du volet de navigation pour pouvoir facilement les dupliquer et les utiliser sur les autres pages de notre tableau de bord. Pour ce faire, dans le menu latéral Sélection, sélectionnez tous les éléments du volet de navigation, regroupez-les et nommez le groupe pour le distinguer des autres groupes que nous pourrions créer à l'avenir. 

Nous disposons maintenant d'un volet de navigation complet que nous pouvons utiliser comme bon nous semble dans le tableau de bord. Les fonctions de sélection et de regroupement sont des outils utiles qui peuvent être maîtrisés pour créer des tableaux de bord complexes, à plusieurs niveaux, et qui peuvent vous faire gagner un temps fou lorsque vous souhaitez réutiliser de grandes parties d'un tableau de bord dans le ou les fichiers Power BI.

J'espère que vous avez appris quelque chose de nouveau ou amélioré vos compétences en Power BI en lisant cet article. Comme toujours, n'hésitez pas à nous contacter sur Discord si vous avez des questions ou si vous voulez discuter des données. 

Power Bi - Retour vers le futur - La table de la dimension temporelle

Dans l'un de mes précédents articles RallyPoint, Schémas en étoile et tableaux de faits et de dimensionsje vous ai présenté le schéma en étoile et l'importance des tables de dimension. Au cas où vous l'auriez manqué ou auriez besoin de vous rafraîchir la mémoire, une table de dimension est une table de référence statique utilisée dans un modèle de données Star Schema pour soulager la table de faits principale (contenant des informations spécifiques sur les événements).  

Afin d'optimiser l'utilisation de ce type de modèle de données

nous avons besoin de plusieurs tables de référence (tables de dimensions) réparties autour du tableau de faits, et l'une des références les plus nécessaires est le temps. Presque chaque tableau de faits contiendra un certain type de référence "temps" contenant des données spécifiques au moment où un ou plusieurs événements spécifiques se sont produits. Bien que Power Bi dispose d'une fonctionnalité intégrée de découpage de la date, nous sommes limités à un découpage par année > trimestre > mois > jour. Il peut également s'avérer difficile de comparer les lignes entre les tableaux de données s'il n'y a pas de dimension commune de date à découper.

Ce problème peut être résolu rapidement avec un script Power Query importé, spécialement conçu pour vous donner la plage de dates souhaitée avec la flexibilité de l'exploration.  

Téléchargez d'abord le script ci-dessous:

Ensuite, choisissez le champ PowerBi auquel vous voulez ajouter la table de dimension temporelle et ajoutez une requête vierge : 

Ensuite, dans la requête vierge nouvellement ouverte, naviguez dans l'onglet Vue et cliquez sur Editeur avancé. 

Ensuite, ouvrez le script dans un éditeur de texte (tel que notepad) et copiez et collez le contenu dans l'éditeur avancé. 

Les seules parties qui nécessitent une saisie manuelle sont les champs FromYear et ToYear. Modifiez ces dates en fonction de vos besoins et cliquez sur Terminé.  


Vous obtenez ainsiun tableau de dimension temporelle complet qui agit comme un séparateur de temps centralisé et peut être utilisé pour fournir une analyse approfondie de vos données ! Cela peut ne pas sembler important pour votre ensemble de données simple à deux tableaux, mais dès que vous commencez à ajouter de la complexité et des données supplémentaires provenant d'autres sources, la table de dimension temporelle est rentable ! 

 
. Comme toujours, si vous rencontrez des problèmes avec ceci, ou tout autre sujet lié aux données, n'hésitez pas à nous contacter ! 

christopher-jaames.dennis@withyouwithme.com 

Analyse de données - Web Scraping (pas de programmation requise)

Si vous êtes comme moi et que vous avez suivi le parcours d'analyse des données de WYWM...

mais vous voulez garder vos compétences à jour, alors vous devez mettre la main sur des données et vous mettre au travail. La question est cependant de savoir où vous trouvez vos données. Tous les exercices et projets du parcours ont les données déjà organisées et fournies pour vous, c'est un luxe agréable à avoir, mais dans le monde réel, c'est à vous, l'analyste de données, de trouver les données nécessaires pour créer ce tableau de bord passionnant et stimulant.

Je suis encore assez jeune dans le monde de l'AD, et j'ai honte d'admettre que mes compétences en Python sont presque inexistantes. J'essaie d'apprendre, mais cela prend un peu plus de temps que prévu. Ainsi, lorsque j'ai eu l'idée de trouver des données relatives au marché immobilier de West Melbourne, je me suis retrouvé coincé. J'ai cherché partout des ensembles de données qui répondraient à mes besoins, hélas sans succès.

C'est alors que je suis tombé sur une solution à mon problème, le Web Scraping. Le Web Scraping consiste à lire le code HTML (Hypertext Markup Language) sous-jacent d'un site Web, à en extraire les parties dont nous avons besoin, puis à tenter de formater les données extraites de manière à ce que nous, analystes de données, puissions poursuivre notre travail. Si vous n'avez aucune expérience du langage HTML, cela peut vous rebuter, mais la solution que j'ai choisi d'utiliser rend le processus aussi simple que de cliquer sur quelques boutons. Un mot d'avertissement cependant, le Web Scraping n'est pas considéré comme illégal en Australie, cependant, il peut être en violation des termes et conditions d'utilisation du site web. En règle générale, si vous n'utilisez pas les données à des fins commerciales mais uniquement à des fins personnelles, vous n'avez pas à vous inquiéter.

La solution que j'ai choisie est le plugin Web Scraper - Free Web Scraping plugin for Chrome. Il s'agit d'une solution peu ou pas codée qui nous permet de configurer notre raclage en sélectionnant les éléments HTML dont nous voulons obtenir les informations.

L'exemple que je vais utiliser est celui des données sur les propriétés de West Melbourne, raclées à partir d'un site Web immobilier. Certains sites Web sont assez protecteurs de leurs données, comme en témoignent les restrictions qu'ils mettent en place pour empêcher les gens d'extraire un ensemble complet de données. Le principal problème auquel j'ai été confronté est que je ne pouvais pas afficher plus de 50 pages de données sur les propriétés et que chaque page ne contenait que 25 propriétés. Pour contourner ce problème, j'ai mis en place plusieurs scrapes pour des recherches plus précises. Par exemple, au lieu de rechercher plusieurs banlieues, j'ai recherché chaque banlieue individuellement et j'ai effectué le scrape, puis j'ai modifié la fonction de "tri" et j'ai effectué un nouveau scrape pour essayer d'obtenir un ensemble de données plus large. 

Pour commencer

Rendez-vous sur le Chrome Web Store et installez le plugin ici. Après l'installation, naviguez jusqu'à la page que vous voulez gratter et appuyez sur la touche F12 de Windows ou pour ouvrir les outils du développeur et cliquez sur Web Scraper. 

Pour la première étape, créons le plan du site en lui donnant un titre et en copiant l'URL du site Web que nous voulons extraire. Comme nous voulons extraire des informations de plusieurs pages, nous trouverons le numéro de page et le remplacerons par des crochets et un intervalle, par exemple [1-50]. Comme je sais que Real Estate.com ne nous permettra pas de rechercher au-delà de 50 pages, j'ai modifié l'URL pour qu'elle recherche les pages 1 à 50. 

Une fois que le plan Sitemap est prêt, nous devons configurer notre sélecteur. Le sélecteur est l'élément du code HTML que le scraper Web doit extraire de chaque page Web. Pour ce faire, cliquez sur le bouton "Ajouter un nouveau sélecteur". À partir de là, donnez au sélecteur un nom descriptif et sélectionnez le "Type" comme "Texte", ce qui permettra d'extraire le texte réel que le HTML représente sur la page Web. L'étape suivante consiste à sélectionner le HTML que nous voulons récupérer. Habituellement, vous créez un sélecteur pour chaque élément d'information que vous voulez extraire et vous le reliez à un sélecteur parent. Cependant, dans ce cas, en raison de la façon dont Real Estate.com a formaté son HTML, il est plus facile d'extraire l'ensemble de la "carte résidentielle" et de la séparer ensuite dans le processus de nettoyage des données. Lors de la sélection de l'HTML, supprimez également l'identifiant d'adresse afin d'indiquer au scraper Web de récupérer toutes les instances de la div.residential-card et non pas seulement celle que nous avons physiquement sélectionnée. Sélectionnez "Multiple" et cliquez sur "Enregistrer". Vous pouvez également cliquer sur le bouton "Aperçu des données" pour vous assurer que vous avez bien sélectionné les bonnes données comme prévu. 

Maintenant, il suffit de lancer le scrape. Le plugin ouvrira alors une mini-fenêtre et commencera à interroger les 50 pages que nous avons sélectionnées.  

Une fois l'opération terminée, il suffit d'appuyer sur le bouton d'actualisation de la fenêtre originale de Web Scraper (et non de la fenêtre contextuelle) pour afficher les données, puis de les exporter au format CSV, prêtes à être nettoyées. Ce type de données n'est pas normalisé ou uniforme, vous devrez donc faire preuve de créativité dans votre nettoyage. Pour ces données, j'ai constaté que toutes les inscriptions n'avaient pas des données complètes. Par exemple, certaines propriétés n'indiquaient pas la taille du terrain ou n'avaient pas de garage. Je vous mets au défi d'essayer par vous-même et de voir quel type de données vous pouvez extraire ! Amusez-vous bien !

Merci d'avoir lu cet article et j'espère qu'il aura une application utile dans votre voyage dans les données. N'hésitez pas à l'essayer vous-même et à me contacter si vous avez des questions ! 

SAP at WYWM - Visibilité des données SAP ERP - Comment j'ai fait économiser des millions à mon entreprise.

N'importe quel responsable de mon précédent emploi vous dira que ma capacité à utiliser et à analyser les données dans SAP ERP le mettait parfois très mal à l'aise. Laissez-moi vous expliquer pourquoi.

Tom Larter, directeur de la clientèle de WithYouWithMe (et véritable force de la nature), adore livrer ce qu'il appelle des bombes de vérité aux clients. La bombe de vérité n° 3 - Privilégier les compétences aux contrôles - concerne la tendance des grandes entreprises à s'appuyer sur des pratiques de gestion des données volumineuses et lourdes de contrôles. Il est plus facile d'apprendre aux employés à suivre des règles que de changer leurs méthodes de travail. Il est également plus facile de séparer et de contrôler l'accès aux données que d'intégrer des pratiques de gestion des données souhaitables dans la culture de l'entreprise.

Des contrôles organisationnels excessifs autour des données ralentissent le temps de prise de décision, augmentent le temps de compréhension et de réponse aux clients - ce qui ralentit l'ensemble de l'entreprise. Dans le monde des affaires, comme dans l'armée, tout ce qui ralentit les temps de réponse aux situations peut mettre l'organisation dans une situation nettement désavantageuse.

La main-d'œuvre numériquement qualifiée réduit le délai de prise de décision, accélère la réponse aux clients (ou sur le champ de bataille) et renforce la capacité de l'équipe à réagir aux informations. Dans le monde SAP, une personne ayant des compétences numériques est appelée un super utilisateur.

La structure des données SAP ERP de l'organisation multinationale pour laquelle je travaillais était hautement séparée et étroitement contrôlée. SAP appelle cela l'autorisation basée sur les rôles. Dans l'armée, on l'appelle "Need to Know" - si vous n'avez pas besoin de savoir, vous ne pouvez pas voir les données et vous n'êtes pas autorisé à prendre des décisions à leur sujet. Mon travail consistait à faire de l'administration au bureau - le niveau le plus bas possible - avec un accès aux données et des autorisations de gestion adéquatement limités.

Normalement, une personne occupant mon poste n'aurait eu qu'une visibilité très limitée sur les données de l'organisation, d'où une capacité très restreinte à agir rapidement dans l'intérêt de l'entreprise. La différence essentielle dans ma situation était que mon rôle composite exigeait un accès direct à la plupart des silos de données SAP ERP. Je pouvais voir plus de choses que je n'aurais dû le faire.

En pratique - tous les contrôles autour de la visibilité des données ne s'appliquaient pas à moi. Je pouvais voir à travers les murs du silo et je n'avais pas peur de regarder.

À bien des égards, j'avais une visibilité plus large et plus immédiate sur les données commerciales tactiques quotidiennes que mes managers.

Cela les a-t-il inquiétés ? Bien sûr que oui !

Ai-je exploité cet avantage tactique dans l'intérêt de l'entreprise ? Vous pouvez y compter.

Ai-je demandé la permission pour chaque décision basée sur des données ? Non.

Ont-ils toujours aimé que j'utilise ces données pour les tenir responsables ? J'ai failli être licencié pour ça.

Me suis-je rangé à leur avis alors que mon expérience de la logistique militaire et de la gestion de projet m'a montré une meilleure ligne de conduite ? Ils le souhaitent.

Est-ce que je suis resté dans mes couloirs ? Ce n'est pas amusant et cela ne présente aucun avantage pour la rentabilité de l'entreprise.

Ai-je utilisé cette visibilité pour nettoyer les données et corriger les processus d'entreprise ? Oh oui.

Ai-je utilisé ces données pour réduire les coûts et le gaspillage ? Qu'en pensez-vous ?

J'étais un emmerdeur ? Incontestablement.

Est-ce que tout cela a amélioré les résultats ?

Des millions.

Une personne. En utilisant les données disponibles.

Formez votre personnel.

Vous voulez rejoindre notre communauté ?

Modèles de données dimensionnelles - Fact Tables vs Dimension Tables

Il arrive un moment où vos données dépassent leur modèle.

Cela deviendra vite évident si votre idée d'un modèle de données se résume à un tableau très large. Il faut un peu de temps pour s'habituer au concept de modèle de données, et il m'arrive encore de m'y perdre. Un modèle de données est une façon d'organiser vos données de sorte que, lorsque votre ensemble de données continue à croître au fil du temps, peu ou pas d'actions manuelles doivent être prises par l'analyste de données pour les incorporer dans le fichier préexistant. Il existe plusieurs types de modèles différents qui peuvent être utilisés, mais le plus courant est le modèle Star Schema. 

Le schéma en étoile est un modèle souhaité car il favorise la convivialité, les performances et l'évolutivité et permet un DAX plus simple. Vous êtes peut-être comme moi lorsque j'ai entendu pour la première fois le terme "Star Schema" et que je me suis dit : "Bien sûr, ce sont de beaux mots, Chris, mais pourquoi m'en soucier ? Mon modèle de données fonctionne très bien tel qu'il est actuellement" et bien sûr, vous êtes d'accord pour le moment, mais qu'adviendra-t-il de votre modèle lorsque vous ajouterez 20 000 lignes supplémentaires dans quelques années ? Votre modèle (ou l'absence de modèle) sera-t-il capable de le gérer ?

La réponse simple est non, et même s'il tient le coup, il causera une frustration importante tout au long du processus.  

Comme vous pouvez le voir dans l'exemple ci-dessus, lorsque les données ne sont pas modélisées, le tableau est trop large, ce qui le rend assez difficile à comprendre.

Le schéma est modelé sur, vous l'avez deviné, une étoile, avec des tableaux catégorisés comme des tableaux de faits au milieu du modèle et des tableaux de dimensions sur les points du côté extérieur.  

Un tableau de faits est un tableau qui contient des données d'événements spécifiques, il peut s'agir de données transactionnelles telles que des données de vente ou de rendez-vous. Chaque ligne de ce tableau se réfère à un événement individuel, il peut y avoir des centaines ou des milliers de ces entrées dans un tableau de faits donné. Les informations contenues dans le tableau de faits doivent être spécifiquement liées à l'événement, par exemple un tableau de ventes de propriétés qui contient des données pertinentes liées à la vente de propriétés. Seules les informations directement liées à la vente de la propriété sont incluses. 

 

Une table de dimension est une table contenant des informations liées à un événement commercial, elle est généralement de nature statique et ne change pas. Ces tables se situent autour de la Fact Table et sont utilisées comme table de référence. Un exemple de ce type de tableau serait le tableau des banlieues. Cela évite d'inclure toutes les informations relatives à la banlieue dans la Fact Table, ce qui la rend plus longue, plus difficile à lire et plus lente pour Power Bi à traiter les données. 

Les tables de dimension comprennent des références uniques par ligne qui renvoient à une colonne de la table des faits. Il est également important de noter que les tables Fact et Dimension se connectent presque toujours au type de table opposé, il serait extrêmement rare de voir 2 tables Fact ou 2 tables Dimension liées l'une à l'autre. 

Le modèle est créé de cette manière pour permettre aux Fact Tables de continuer à croître sans que cette croissance n'entrave l'utilisation des données. La table des faits fait référence à la table des dimensions lorsqu'elle a besoin d'informations supplémentaires qui ne sont pas contenues dans sa propre table, ce qui augmente les performances et la facilité d'utilisation du modèle de données. 

Ces deux types de tables sont reliés entre eux par ce que l'on appelle une clé de substitution

Une clé de substitution est un identifiant unique commun aux deux types de table, qui est utilisé pour créer un lien entre elles. Les tableaux de faits contiennent plusieurs entrées de la même clé de substitution, alors que le tableau de dimensions ne contient qu'une seule référence à la même clé. La table des faits "consulte" la table des dimensions pour y trouver les informations supplémentaires relatives à cette clé.  

Les tables peuvent alors avoir différents types de relations, en fonction du type de table et de la direction de la relation. Dans l'exemple ci-dessus, au lieu d'avoir toutes les informations sur la banlieue dans la table des données de vente de biens immobiliers, nous utilisons une table de dimension distincte appelée Post Code pour obtenir toutes les informations pertinentes sur la banlieue, comme le code postal, le pays, l'état, etc. Ces deux tables sont liées par la clé de substitution de la banlieue et la relation est de type Many to One.  

Il existe 4 relations différentes que les différentes tables peuvent avoir entre elles, ce sont les suivantes : 

  1. Many to One - Plusieurs instances de la clé de substitution dans la première table et une seule instance dans la deuxième table. 
  1. One to One - Une instance de la clé de substitution sur la première table et une seule instance sur la seconde table. 
  1. One to Many - La même chose que Many to One, mais dans l'autre sens. 
  1. Many to Many - De nombreuses instances de la clé de substitution dans la première table et de nombreuses instances dans la deuxième table (il est recommandé de ne pas utiliser cette méthode, sauf si la complexité du modèle de données l'exige). 

Vous pouvez également choisir si vous souhaitez qu'un lien transfère des informations dans un seul sens ou dans les deux sens à l'aide du paramètre Direction du filtre croisé. Par exemple, si la direction du filtre croisé est définie sur les deux, les informations peuvent circuler de la table A à la table B ainsi que de la table B à la table A. Toutefois, si la direction du filtre croisé est définie sur un seul sens, les informations ne peuvent circuler que dans un sens (de la table A à la table B OU de la table B à la table A, mais pas les deux).  

J'espère que cela vous a éclairé sur les différents types de tables et leur utilisation dans le modèle Star Schema. C'est quelque chose qui semble étranger au début, mais une fois que vous l'aurez mis en pratique, cela changera à jamais la façon dont vous modélisez vos données.

La prochaine fois, je vous montrerai comment développer encore plus vos nouvelles compétences en matière de Star Schema grâce à la puissance de la table Time Dimension. N'hésitez pas à nous contacter sur Discord pour tout ce qui concerne les données !

christopher-jaames.dennis@withyouwithme.com
 

INTRODUCTION À PYTHON JUPYTER NOTEBOOK

Ivan Josipovic - Analyse des données

Qu'est-ce que Jupyter Notebook ?

Jupyter Notebook est un logiciel libre d'analyse de données qui fonctionne dans votre navigateur Internet.

Il permet aux analystes de données et aux scientifiques de créer un document unique qui peut contenir des visualisations de données, des commentaires, des équations mathématiques et d'autres médias. Cela permet d'accélérer et de faciliter le traitement, la visualisation, l'analyse et la communication des données, le tout en utilisant l'un des langages de programmation les plus utilisés au monde : Python !

Comment télécharger et installer Jupyter Notebook (pour Windows) ?

C'est très simple, suivez-nous et faisons-le !

1. Google : téléchargement de anaconda python.

2. Cliquez sur ce site web : www.anaconda.com

3. Naviguez vers le téléchargement de "Anaconda Individual Edition".

4. Pour Windows, cliquez sur Télécharger Anaconda Individual Edition.

5. Une fois téléchargé, double-cliquez sur le téléchargement et suivez l'invite.

6 Une fois installé, dans la boîte de recherche à côté du menu de démarrage de Windows, tapez : Anaconda.

7. Anaconda Navigator devrait apparaître dans les résultats. Cliquez dessus.

8. Une fois ouvert, il y a une sélection d'outils et de programmes. Cliquez sur Jupyter Notebook.

9. Il devrait s'ouvrir dans votre navigateur Internet par défaut, dans un nouvel onglet.

10. Vous verrez apparaître un certain nombre de dossiers. Sélectionnez le dossier le plus approprié où vous souhaitez stocker tous vos documents de code Jupyter Notebook. Pour faciliter l'utilisation, vous pouvez créer un nouveau dossier sur votre bureau et ensuite dans l'onglet du navigateur Jupyter Notebook, naviguer vers ce dossier.

11. Cliquez sur Nouveau. Sélectionnez Python, et un nouvel onglet s'ouvrira avec votre nouveau document vierge.

COMMENÇONS PAR LES BASES DE PYTHON DANS LE CARNET DE NOTES DE JUPYTER

Types de variables

Il y a 4 types de variables avec lesquelles nous allons travailler en python dans Jupyter.

Ces types de variables sont :

Lesnombres entiers sont également connus sous le nom de nombres entiers. En Python, ils sont représentés par 'int'.

Par exemple, attribuons la valeur 2 à la variable x:

            X = 2

Lorsque nous exécutons x, il renvoie la valeur 2.

(pour exécuter une ligne de code dans Jupyter Notebook, maintenez SHIFT et appuyez sur ENTER)

En d'autres termes, nous avons déclaré que dans le nom de la variable x, comme un panier appelé x, nous avons placé la valeur 2. A rappeler à chaque fois que nous disons "x".

Dans Jupyter, nous pouvons vérifier le type de variable simplement en tapant :

            type()

Dans les parenthèses, nous saisissons le nom de la variable, afin de pouvoir vérifier le type de valeur qu'elle contient !

Unflottant est un nombre avec une décimale. Dans d'autres langages de programmation, on pourrait l'appeler un double. Cependant, en Python, on l'appelle un flotteur.

Par exemple, attribuons la valeur 4,5 à la variable y:

            y = 4.5

Lorsque nous exécutons y, 4.5 est retourné !

Lachaîne est un caractère unique entouré de guillemets et dont la longueur est de 1.

Par exemple, assignons la chaîne "hello" à la variable a:

            a = "bonjour"

et la chaîne "là" à la variable b :

            b = "là"

on peut tester ce que ça renvoie :

            a + b

(SHIFT + ENTER)

Retournerait 'hellothere'.

Mais ça fait désordre ! Ok, pas de stress... Ajoutons quelque chose à notre déclaration :

            a + " " + b = 'hello there' (veuillez noter qu'un espace entre guillemets donne exactement ce résultat lorsqu'il est ajouté à des variables)

Lalogique est une valeur définie comme étant soit Vrai, soit Faux.

Par exemple :

            A = Vrai

Quand on fait A, on obtient Vrai.

            n = 4 > 5

Cela revient à dire que l'instruction "4 est plus grand que 5" est affectée à la variable n.

Quand n est exécuté, on obtient :

            Faux

Parce que nous savons qu'il est impossible que 4 soit plus grand que 5.

De même, si nous exécutons m:

            m = 10 > 3

Nous aurions la vérité en retour !

Jusqu'à présent, nous avons simplement exécuté le nom de la variable afin de retourner la valeur qui lui a été attribuée.

Toutefois, il s'agit d'une manière incorrecte de procéder.

La manière correcte serait :

            print()

Quelle que soit la variable que vous souhaitez exécuter et retourner, vous la placerez dans ces parenthèses !

Travailler avec des variables

Vous vous demandez peut-être comment nous travaillons avec les variables...

C'est à peu près la même chose que l'arithmétique de base des mathématiques.

            a = 10

            b = 5

c = a + b (addition)

            print(c) = 15

            d = a - b (soustraction)

            print(d) = 5

e = a * b (multiplication)

            print(e) = 50

f = a / b (division)

            print(f) = 2

On peut aussi additionner des chaînes de caractères ! Par exemple :

            greet = "bonjour"

            nom = "Steve"

            message = greet + " " + name

            print(message) = bonjour Steve

Opérateurs booléens

Ce sont les symboles ou les opérateurs que nous utilisons dans une instruction de test logique pour déterminer si une valeur est VRAIE ou FAUX.

== égaux

!= or <> not equal

< less than

> supérieur à

<= less than or equal to

>= supérieur ou égal à

et

ou

pas

Les exemples ci-dessous montrent l'utilisation des opérateurs booléens.

5 == 5 (cinq est égal à cinq)

= Vrai

3 == 5 (3 est égal à 5, ce qui est bien sûr faux et renvoie un Faux)

= Faux

7 != 4 (sept n'est pas égal à quatre)

= Vrai

5 > 6 (cinq est plus grand que 6)

= Faux

3 < 4    (three is less than four)

= Vrai

show = 4 < 5

show2 = not(6 > 2) (not transforme tout ce qui est vrai en faux et vice versa)

print(show2)

= Faux

show ou show2 (valeur vraie pour show ou show2)

= Vrai

show et show2 (et nécessite que les deux variables appelées soient vraies)

= Faux

Déclaration IF

Une instruction if est utilisée pour exécuter du code une fois, uniquement si l'instruction est satisfaite par la logique désignée True ou False.

Par exemple :

            pommes = 23

            bananes = 46

            si bananes > pommes :

                        réponse = "Il y a plus de bananes que de pommes".

            print(réponse)

Il en résulterait

            Il y a plus de bananes que de pommes

Car oui, 46 qui est attribué aux bananes, est un nombre plus grand que 23 qui est attribué aux pommes !

Déclaration IF ELSE

L'instruction if else est utilisée pour renvoyer deux résultats possibles après l'exécution d'un code, selon qu'il répond au critère True ou False.

Par exemple :

            pommes = 23

            bananes = 46

            si pommes > bananes :

                        réponse = "Il y a plus de pommes que de bananes".

            autre :

                        réponse = "Vérifie tes yeux mon pote, il y a plus de bananes que de pommes"

            print(réponse)

Il en résulterait

Vérifie tes yeux, il y a plus de bananes que de pommes Parce que dans la condition si, nous disions s'il y a plus de pommes que de bananes, fais ceci. Mais il y a plus de bananes que de pommes, alors fais ça.

Déclarations imbriquées

Une instruction imbriquée est exactement ce à quoi elle ressemble, une instruction dans une autre instruction. Pour épargner à vos yeux l'image d'un élément dans une imbrication, regardez l'exemple ci-dessous.

pommes = 23

            bananes = 23

            si pommes > bananes :

                        réponse = "Il y a plus de pommes que de bananes".

            autre :

                        if apples < bananas:

                                    réponse = "Il y a plus de bananes que de pommes".

                        autre :

réponse = "Arrêtez de compter les fruits"

            print(réponse)

Il en résulterait

            Ne comptez plus les fruits

Parce que les pommes et les bananes étaient un nombre égal, et non supérieur l'un à l'autre, d'où la troisième réponse qui revient.

Déclarations chaînées

On parle d'instructions chaînées lorsque vous utilisez des contrôles de flux if/elif/else, indentés de la même manière, pour exécuter du code.

pommes = 23

            bananes = 23

            si pommes > bananes :

                        réponse = "Il y a plus de pommes que de bananes".

            elif pommes >= bananes :

                        réponse = "Pourquoi comptez-vous les fruits ? Retourne au travail"

            autre :

                        réponse = "Il y a plus de bananes que de pommes".

            print(réponse)

Il en résulterait

Pourquoi comptez-vous les fruits ? Retournez au travail Parce que dans le elif (version raccourcie en python de "else if") il est dit si les pommes sont plus grandes ou égales aux bananes, ce qui oui, elles sont en nombre égal l'une à l'autre.

Boucle While

Les boucles While sont utilisées pour exécuter du code, uniquement si la condition est remplie. Ce code est "bouclé" jusqu'à ce que les conditions soient fausses, sinon il s'exécute à l'infini.

Exemple :

(veuillez noter que lorsque vous commentez dans Jupyter, faites précéder tout le texte par # )

# while condition :                

Code exécutable

(il est également important de noter que le code ci-dessous doit être indenté avec une pression sur la touche TAB )

count = 0 (0 est assigné à la variable count)

while count <= 12:    (while 0 is less than or equal to 12)

print(count) (puis retourne le compte et passe à la ligne de code suivante)

count = count + 1 (quel que soit le nombre de retours, ajoutez +1 à chaque fois)

(continuez à parcourir la boucle jusqu'à ce que le compte soit égal à 12) Retourne :

1

2

3

4

5

6

7

8

9

10

11

12

STOP

Pour la boucle

Une boucle for est utilisée pour répéter une séquence de code.

Exemple ci-dessous :

pour i dans l'intervalle(4) :

            print("Ceci est une boucle")

Reviendra

Il s'agit d'une boucle

Il s'agit d'une boucle

Il s'agit d'une boucle

Il s'agit d'une boucle

Parce que pour la variable i dans l'intervalle 0,1,2,3, le message "Ceci est une boucle" sera imprimé quatre fois.

N'oubliez pas qu'en Python, le tout premier indice est 0 et non 1 !

Alors que vous pourriez compter 1,2,3,4.

Python compte 0,1,2,3, ce qui représente l'intervalle de comptage de 4 places.

D'autres leçons à venir !

SAP at WYWM - Mes compétences rares en matière de SAP

Ce n'est un secret pour personne que je suis surtout autodidacte en matière de SAP. 

J'ai rencontré le système pour la première fois lorsque j'ai commencé à travailler chez Holcim Humes Australia en tant que "Production Works Clerk". Il s'agissait d'un poste de saisie de données/administration de bas niveau dans une petite usine de fabrication de béton de campagne qui faisait partie d'une grande multinationale spécialisée dans l'exploitation de carrières et les produits en béton. La filiale de Humes était la seule partie de l'entreprise qui fabriquait des produits finis en béton. Holcim (aujourd'hui Lafarge Holcim) se concentre sur l'exploitation de carrières et la livraison de béton en vrac dans des camions agitateurs mobiles.  

Ce n'est qu'au cours des douze derniers mois environ que je me suis plongé dans un apprentissage formel de SAP. Je pense que j'ai reçu une introduction d'une semaine à SAP sur le lieu de travail lorsque j'ai commencé à occuper ce poste. Il est important de noter que la personne qui m'a confié le poste travaillait encore sur papier et n'était manifestement pas à l'aise avec les bases de données. 

Je me souviens que j'ai été initiée de manière quelque peu hésitante à la version de l'interface utilisateur graphique (GUI) de SAP que la société utilisait. Les autres femmes du bureau n'allaient pas pouvoir m'apprendre grand-chose - elles avaient trop peur de la base de données et restaient toujours bien à l'intérieur de leur couloir. Je ne vais pas mentir - l'interface était confrontante et quelque peu maladroite, mais j'ai appliqué le concept du vétéran "c'est l'outil qu'on m'a donné - je ferais mieux d'apprendre à l'utiliser". 

C'est ce que j'ai fait. 

Ce n'est que récemment que je me suis rendu compte que l'expérience que j'ai acquise en gérant les fonctions de planification des ressources d'entreprise (ERP) de SAP dans cette petite usine de campagne a fait de moi un animal rare en matière de SAP.  

Laissez-moi vous expliquer.  

Je suis un opérateur - un très bon opérateur - que l'on appelle un super utilisateur. Je suis la personne qui saisit, utilise et maintient les données toute la journée, tous les jours.  

Normalement, une personne qui utilise le système SAP au sein d'une entreprise ne travaille que dans un seul domaine de spécialité. La personne payée pour s'occuper de la paie ne s'occupera que de la paie. La personne chargée de la gestion des stocks n'aura rien à voir avec les achats ou la répartition. La personne qui prend les commandes de vente peut même ne pas se trouver au même endroit que la personne chargée de la saisie de la production. Le système d'autorisation basé sur les rôles de SAP est conçu pour séparer les rôles incompatibles. Nous reviendrons sur ce sujet dans un autre article.  

Ma société utilisait la totalité de la suite SAP Enterprise Resource Planning à différents niveaux.  

La liste des sujets du cours TS410 de SAP sur les systèmes de gestion intégrés (S/4 HANA ERP) ressemble à ceci : 

  1. Présentation de SAP S/4 HANA Enterpise Management 
  1. SAP Fiori 
  1. Concepts à l'échelle du système 
  1. Traitement d'enregistrement à rapport 
  1. Traitement des embauches et des départs à la retraite 
  1. Traitement de la source au paiement 
  1. Gestion des entrepôts et des stocks 
  1. Traitement de la conception à l'exploitation 
  1. Conduite du traitement de l'argent 
  1. Systèmes de projet SAP 
  1. SAP Enterprise Asset Management 

Comme nous étions une très petite usine, tout le personnel de bureau avait plusieurs domaines de responsabilité et nous avons tous, à un moment ou à un autre, échangé et partagé les rôles. Personne n'aurait jamais pu prendre de congé si nous ne l'avions pas fait.  

Ma formation militaire portait sur le transport routier de l'armée, la logistique de la chaîne d'approvisionnement et la gestion des ressources humaines. J'étais terriblement sous-employé dans ce rôle, mais c'est une autre histoire.  

Honnêtement, me mettre à ce poste, c'était comme utiliser un char de combat principal pour éradiquer les souris dans votre salon. Disons simplement que j'étais connu (sinon aimé) pour avoir utilisé les informations de SAP afin de remettre en question le statu quo et d'apporter des améliorations. J'ai même réussi à faire tomber SAP plus d'une fois lorsque j'effectuais des recherches à grande échelle pour des analyses.  

Si vous voulez savoir ce que je sais de SAP ERP, ou comment mon expérience militaire s'applique à mes rôles d'opérateur SAP, lisez la suite.  

Assez d'informations générales.  

Pourquoi mes compétences SAP sont-elles rares ? 

Parce que je suis devenu un super utilisateur dans quatre des branches de l'ERP. J'avais de l'expérience dans trois autres grâce à ma formation militaire. J'ai fait en sorte d'apprendre le huitième (bien que beaucoup de choses me passent encore au-dessus de la tête). J'ai plus ou moins fait le truc d'officier de l'armée en voulant savoir tout ce qui se passait autour de moi. Je ne suis pas resté dans mon coin et j'ai constamment demandé "Pourquoi ça a mal tourné ?" et "Comment faire mieux ?".  

Il n'arrive presque jamais dans une entreprise qu'une seule personne gère plus d'une branche de SAP ERP. Je les ai toutes couvertes dans une certaine mesure. 

La somme de mes expériences fait de moi un animal rare dans l'espace SAP ERP. C'est pourquoi j'ai été choisi comme mentor pour le programme de formation WYWM SAP Squad.  

Vous avez des questions ?

Cliquez ici pour demander à la communauté SAP de WYWM sur Discord.

Les modules de base de SAP - Les règles d'or de Mel

Vous avez des questions ?

Cliquez ici pour demander à la communauté SAP de WYWM sur Discord.

Construire un calculateur de LP pour League of Legends en Excel

Dans cette leçon rapide, apprenez à créer une calculatrice de LP pour League of Legends en utilisant Excel.
Nous utiliserons les outils/fonctions suivants :

Moyennes mobiles pour l'analyse des données de séries chronologiques

Voyons comment nous pouvons utiliser les moyennes mobiles pour repérer les tendances dans les séries chronologiques de données.

Les séries chronologiques sont l'un des ensembles de données les plus courants que vous rencontrerez dans votre carrière d'analyste de données. Un ensemble de données de séries temporelles est une collection de données séquentielles qui sont enregistrées dans des intervalles de temps.

Parmi les nombreux exemples, citons :

L'un des principaux défis à relever lorsqu'on travaille avec des séries chronologiques est la présence de fortes fluctuations, ou de bruit, dans les données. Cela peut rendre difficile la détection des tendances et des caractéristiques clés qui seraient autrement cachées sous ces fluctuations.

Dans cette vidéo, nous utilisons une moyenne mobile simple pour explorer la tendance d'une série chronologique de recettes commerciales historiques à l'aide de MS Excel. Nous utilisons ensuite cette moyenne mobile comme base de référence pour mesurer le revenu mensuel.

Vous pouvez trouver le jeu de données sur Kaggle (certaines colonnes et lignes ont été supprimées dans cet exemple pour simplifier les choses) : https://www.kaggle.com/podsyp/time-series-starter-dataset