Quest-ce que le self en Python ? Exemples concrets
Qu'est-ce que le self en Python ? Exemples concrets
Je vais vous montrer comment mettre à jour votre jeu de données d'entraînement à chaque fois que vous effectuez une actualisation . Vous pouvez regarder la vidéo complète de ce tutoriel au bas de ce blog.
Si vous voulez vraiment améliorer vos compétences DAX, le moyen est de l'utiliser et de le mettre en pratique. Et pour ce faire, vous auriez besoin d'un ensemble de données d'entraînement qui vous aide à visualiser et à travailler sur des scénarios réels possibles.
Le problème avec les ensembles de données de pratique est que les données sont généralement statiques . Pour vous entraîner efficacement, vous devez donner l'impression que les données sont en direct.
Table des matières
Configuration d'un chemin de fichier pour l'ensemble de données d'exercice
Pour mes exemples de données, j'ai un fichier Excel contenant les données de ventes de 2014, 2015 et 2016.
Ce sont les données que je dois mettre à jour.
L'emplacement du document se trouve ici sur ma barre d'outils d'accès rapide.
J'en ai besoin pour configurer un paramètre pour mon chemin de fichier. Je vais donc copier cet emplacement de document.
Il y a un point d'accès à la barre d'outils d'accès rapide sur le côté droit de celle-ci.
Une fois que j'appuie dessus, j'obtiens cet écran.
Je vais donc choisir Toutes les commandes , puis choisir Emplacement du document . Ajoutez cela à la barre d'outils d'accès rapide et appuyez sur OK.
Maintenant, je vais entrer dans Power Query pour créer le paramètre qui contiendra mon chemin de fichier. Cette étape est importante car elle permet de restaurer toutes les requêtes à l'intérieur du modèle si un autre utilisateur modifie l'emplacement du fichier.
Je vais donc créer un nouveau paramètre .
Je vais appeler ça FileLocation .
Sous type, je vais sélectionner Text . Et pour Current Value , je collerai à l'emplacement du document que j'ai copié précédemment.
Je vais créer une nouvelle requête.
Ensuite, je choisirai les exemples de données que j'utiliserai comme ensemble de données d'entraînement.
Un certain nombre de tableaux différents apparaîtront ici puisque j'ai des données sur les ventes de 2014, 2015 et 2016. J'ai juste besoin de choisir le premier, qui est Sales_2014 .
Maintenant que j'ai choisi les données Sales_2014, il est temps de changer cet emplacement de fichier codé en dur en un emplacement de fichier dynamique .
Je vais aller dans l' éditeur avancé et sélectionner tout ce qui est lié à l'emplacement du fichier .
Ensuite, je vais changer cela dans le paramètre FileLocation que j'ai créé plus tôt.
Ensuite, j'appuierai sur Terminé pour verrouiller ces modifications dans la requête Sales_2014.
Création du dossier de préparation des données
En regardant les étapes appliquées pour la requête Sales_2014, je clique sur l' étape de navigation . Cela me montre qu'il fait référence à l' étape Source .
Il fait également référence à Sales_2014 qui s'affiche sous la forme d'un tableau . Il montre également qu'il extrait des données de la colonne Données.
Maintenant, laissez-moi regarder l' étape Source ensuite.
L'étape Source me montre tout ce qui réside dans mon fichier Excel . Si je vérifie ces coordonnées, je vois Sales_2014 , et sous Kind, il est écrit Table .
Lorsque je recherche la colonne de données, elle affiche l' objet Table qui a été extrait.
Je peux donc dupliquer cette requête pour obtenir les données de 2015 . Pour ce faire, j'ai juste besoin de faire un clic droit sur Sales_2014 puis de choisir Dupliquer.
Ensuite, je reviendrai à l'étape de navigation.
Je vais changer cette année de 2014 à 2015.
Je vais également renommer cela ici sous Propriétés. Je l'appellerai Sales_2015.
Cette fois, je vais dupliquer Sales_2015.
Ensuite, je reviendrai à l'étape de navigation et changerai l'année en 2016.
J'ai maintenant mes données complètes sur les ventes. Mais ces requêtes ne doivent pas être chargées dans mon modèle . J'ai juste besoin de faire un clic droit sur chacun d'eux et de désélectionner Enable load .
Maintenant, je vais sélectionner toutes les requêtes et les placer dans un seul dossier pour mieux organiser les choses.
J'appellerai ce dossier Data Prep .
Obtenir le décalage de jour
Les exemples de données ici sous Data Prep vont être statiques . Cela signifie que la 1ère et la dernière dates ne changeront jamais .
Je vais donc entrer dans Sales_2016 et je vais trier la colonne Order Date par ordre décroissant pour obtenir la dernière date de cet ensemble de données .
La dernière date de cet ensemble de données est le 31 décembre 2016 .
Maintenant, je vais créer une nouvelle requête.
Ensuite, je vérifierai quel est le décalage de jour entre la dernière date de l'ensemble de données et aujourd'hui. Cela signifie que je dois découvrir ce qu'il en est aujourd'hui. Pour ce faire, je vais utiliser la fonction DateTime.FixedLocalNow . Cela me donnera la date et l'heure de la machine sur laquelle je travaille.
Mais je n'ai pas vraiment besoin de la portion de temps ici. J'ai seulement besoin de la partie date de cette valeur.
Donc, je vais extraire la date en utilisant Date.From .
Ensuite, à partir de cette valeur, je vais soustraire la dernière date de mon ensemble de données . Étant donné que les données sont statiques, je peux utiliser la valeur de date intrinsèque . C'est donc #date, puis référence au 31 décembre 2016.
Maintenant, je dois extraire le nombre de cette différence . Je vais donc ajouter Number.From et le fermer avec une parenthèse. Appuyez ensuite sur Entrée.
Je vais le renommer en DayOffset .
Configuration de plages de dates dynamiques
J'ai également besoin de plages de dates dynamiques pour ma table de dates. Je vais commencer par faire un clic droit sur le dossier Data Prep et créer une nouvelle requête vierge.
Ensuite, je vais travailler sur la date de début de ma table Date.
Je veux toujours le 1er jour de l'année comme date de début. Je vais donc mettre le signe égal et utiliser la fonction Date.StartOfYear .
Puisque je dois lui donner une valeur, je vais compenser cela en utilisant Date.AddDays .
Ensuite, j'utiliserai à nouveau la valeur de date intrinsèque et utiliserai la 1ère date de mon ensemble de données , qui est le 1er juin 2014.
J'ai aussi besoin du nombre de jours que j'ai calculé dans mon DayOffset , donc je vais l'ajouter.
Une fois que j'appuie sur Entrée, cela me donne le 1er janvier 2017 . Cela va être la 1ère date dans ma table de date.
Je vais renommer cela en fxStartDate .
Maintenant, je peux configurer ma date de fin. Je vais copier cette syntaxe que j'ai utilisée sur ma date de début.
Je vais créer une nouvelle requête vide.
Puis renommez-le en fxEndDate .
Ensuite, je vais coller la syntaxe de mon Start Date .
Au lieu de StartOfYear , je vais changer cela en EndOfYear.
Je vais également utiliser la dernière date de mon ensemble de données , qui est le 31 décembre .
Lorsque j'appuie sur Entrée, il revient le 31 décembre 2020 .
Création d'un seul tableau des ventes
Je vais combiner les 3 tables en une seule table Sales . Pour ce faire, je vais créer une nouvelle requête.
J'appellerai cela ma table des ventes .
Ensuite, je combinerai Sales_2014, Sales_2015 et Sales_2016 dans un seul tableau.
Je sais que vous pouvez le faire via le ruban, mais il existe également une option pour le faire directement dans la barre de formule. Je vais choisir cette 2ème option.
Je vais commencer par Table.Combine .
Table.Combine nécessite une liste de tables . Je vais donc ajouter un initialiseur de liste , qui est ces accolades , puis je vais nommer les 3 requêtes . Appuyez sur Entrée après cela.
Transformer la colonne de date de commande
Maintenant que j'ai la plupart des éléments dont j'ai besoin, je vais générer une partie clé de la syntaxe que je vais utiliser plus tard pour compléter mon jeu de données de pratique dynamique.
Je vais commencer par sélectionner deux colonnes de nombres. Je peux utiliser l' Index des régions de livraison et l' Index des descriptions de produits . De votre côté, vous pouvez appuyer sur Maj ou Ctrl pour sélectionner les deux colonnes.
Sous l' onglet Transformer , je sélectionne Valeur absolue .
Si je regarde la barre de formule, elle affichera la fonction Table.TransformColumns . C'est la clé de la solution finale.
La fonction prend une liste de listes de transformations . Comme vous pouvez le voir, il y a ici 2 listes imbriquées l'une dans l'autre.
Il fait référence au nom de la colonne sous forme de texte. C'est pourquoi Delivery Region Index a été référencé ici sur la 1ère série.
Ensuite, il ajoute une étape de transformation .
Il fait la même chose dans une liste séparée pour la colonne Product Description Index .
Maintenant, je vais me diriger vers l' éditeur avancé .
Je ne veux pas de valeurs absolues . Donc la première chose que je vais faire est de décaler ma date . Je vais créer une fonction appelée fxUpdateDate pour le faire. Il va utiliser la date actuelle, que je vais taper comme cDate .
Ensuite, je vais utiliser à nouveau la fonction Date.AddDays , qui utilise également le cDate . J'utiliserai également le DayOffset que j'ai créé plus tôt.
Tout ce que fxUpdateDate fait, c'est prendre la date. Donc, si je transmets cela à la fonction Table.TransformColumns , il va commencer à vérifier chaque date enregistrée.
Donc, si je travaille sur la 1ère ligne ici, par exemple, il va considérer le 1er juin 2014 comme cDate.
Et chaque fois que la fonction est appelée, elle va ajouter ce DayOffset que j'ai créé.
Désormais, l'étape Table.Transform s'affiche dans Calculated Absolute Value .
Je vais d'abord le renommer et l'appeler UpdateOrderDate.
Cette étape UpdateOrderDate implique mon Table.TransformColumns qui est égal à la Source.
Le tableau initial répertorié est l' Index des régions de livraison . Mais il n'est pas nécessaire de transformer cela. Je vais donc changer cette 1ère colonne référencée dans la colonne OrderDate .
Il est également dit ici que la transformation va se faire en valeurs absolues.
Puisque je ne veux pas cela, je vais le changer en fxUpdateDate .
Le type ne va pas non plus être une valeur absolue, donc je dois aussi changer cette partie.
Je vais changer ça en rendez-vous .
Je n'ai besoin que d'une seule transformation, donc je vais supprimer la 2ème liste avec l'étape de transformation qui vient avec cet ensemble…
… il s'agit donc d'une seule transformation pour la colonne OrderDate.
Parce que j'ai renommé l'étape pour la valeur absolue calculée, je dois également changer cela dans ma déclaration.
Maintenant, il affiche également UpdateOrderDate .
Ainsi, la colonne OrderDate appellera désormais cette fonction pour chaque enregistrement dans Table.TransformColumns .
En regardant dans la colonne Date de commande, je peux voir que cela a été mis à jour.
Et si je trie cela par ordre décroissant, cela indique le 7 juillet 2020 comme date actuelle.
Je vais donc supprimer cette étape de tri car je n'en ai pas vraiment besoin. Je n'ai fait cela que pour vérifier si la date actuelle avait également été mise à jour.
Application de l'intelligence temporelle à l'aide du code M
Mon modèle concerne uniquement les données de vente . Puisque je vais faire de l'intelligence temporelle, j'aurais besoin d'une table de dates .
Je vais donc aller sur le . Dans le M-code Showcase , j'aborde le sujet Extended Date Table .
Faites défiler jusqu'en haut de la page et copiez l'intégralité du code .
En revenant dans mon modèle, je vais créer une nouvelle requête vide et coller ce code M dans . Appuyez sur Terminé.
Je vais renommer cette requête en fxCalendar .
Pour mes paramètres, j'utiliserai le 1er janvier pour la StartDate et le 31 janvier pour la EndDate . Appuyez ensuite sur Invoquer.
Une fois le tableau affiché, je vais le renommer en Dates .
N'oubliez pas que j'ai déjà créé les dates de début et de fin en regardant la 1ère date sur l'exemple de jeu de données et en la compensant par mon DayOffset. Ainsi, le fxStartDate apparaît ici comme le 1er janvier 2017 .
Quant au fxEndDate, il renvoie le 31 décembre 2020 .
Je peux revenir au tableau Dates et mettre à jour cette étape Source également.
Il répertorie les paramètres dans l'ordre dans lequel ils ont été appelés. Le premier paramètre doit indiquer la date de début .
Je vais changer cela en fxStartDate .
Je vais également remplacer le deuxième paramètre.
Je vais mettre le fxEndDate .
Une fois que j'appuie sur Entrée, la transformation est terminée. J'ai maintenant un ensemble de données de pratique entièrement à jour qui restera toujours à jour.
Je clique simplement sur Fermer et appliquer pour verrouiller toutes ces étapes.
Création d'une table de requête de date dynamique dans LuckyTemplates : un didacticiel sur l'éditeur
de requête
Conclusion
Comme je l'ai mentionné précédemment, le fait d'avoir votre propre ensemble de données de pratique dynamique améliorera certainement votre jeu en ce qui concerne LuckyTemplates. Il vous permet de mettre en pratique vos compétences et vos connaissances tout en prétendant que vous travaillez sur un scénario réel.
Si vous souhaitez en savoir plus sur la dynamisation de vos dates de début et de fin, en particulier pour un jeu de données d'entraînement que vous utilisez, vous pouvez consulter le forum LuckyTemplates. Il y a beaucoup de conversations à ce sujet ainsi que d'autres sujets pertinents. Vous pouvez même trouver d'autres approches qui fonctionneraient pour vous.
Tous mes vœux,
Mélisse
Qu'est-ce que le self en Python ? Exemples concrets
Vous apprendrez à enregistrer et à charger des objets à partir d'un fichier .rds dans R. Ce blog expliquera également comment importer des objets de R vers LuckyTemplates.
Dans ce didacticiel sur le langage de codage DAX, découvrez comment utiliser la fonction GENERATE et comment modifier dynamiquement le titre d'une mesure.
Ce didacticiel explique comment utiliser la technique Multi Threaded Dynamic Visuals pour créer des informations à partir de visualisations de données dynamiques dans vos rapports.
Dans cet article, je vais parcourir le contexte du filtre. Le contexte de filtrage est l'un des principaux sujets que tout utilisateur de LuckyTemplates doit d'abord connaître.
Je souhaite montrer comment le service en ligne LuckyTemplates Apps peut aider à gérer différents rapports et informations générés à partir de diverses sources.
Découvrez comment calculer les modifications de votre marge bénéficiaire à l'aide de techniques telles que la création de branches de mesure et la combinaison de formules DAX dans LuckyTemplates.
Ce didacticiel abordera les idées de matérialisation des caches de données et comment elles affectent les performances des DAX dans la fourniture de résultats.
Si vous utilisez encore Excel jusqu'à présent, c'est le meilleur moment pour commencer à utiliser LuckyTemplates pour vos besoins en matière de rapports commerciaux.
Qu'est-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir