Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
In deze zelfstudie leert u over geneste expressies, objecten en omgevingen in Power Query . Geneste uitdrukkingen en variabelen worden gebruikt om te bespreken hoe omgevingen werken en helpen bij het genereren van gegevens. U leert ook omgaan met veelvoorkomende scenario's bij het transformeren van geneste objecten.
Inhoudsopgave
Geneste uitdrukkingen maken
Uitdrukkingen worden gedefinieerd als een formule die wordt gebruikt om waarde te construeren.
De uitdrukking in de formulebalk is opgebouwd uit subuitdrukkingen. De letterlijke waarden 1 en 2 zijn subuitdrukkingen van de bovenliggende uitdrukking.
Variabelen worden gedefinieerd als benoemde waarden. Dit is een voorbeeldrecord.
Als u het venster Geavanceerde editor opent, kunt u de variabelen zien die in de query zijn gebruikt.
De variabelen a , b en c vertegenwoordigen elk een waarde die het resultaat is van een uitdrukking die je vaak achter een gelijkteken aantreft. Alle variabelen binnen de bovenliggende expressie, die het record zelf is, vormen de omgeving van dat record. Binnen die omgeving moet elke variabele uniek zijn.
Dus als u een andere variabele met de naam c toevoegt , ziet u een foutmelding onder het Advanced Editor-venster.
Het record heeft toegang tot alle subexpressies met behulp van identifiers of variabelenamen. Voor geneste uitdrukkingen binnen de record is elke omgeving echter anders, omdat ze toegang hebben tot alle andere variabelen in de record, behalve tot zichzelf.
In dit voorbeeld kunt u zien dat variabele c naar zichzelf verwijst.
Als je op gereed drukt, krijg je een foutmelding.
Als u de waarde van c extraheert door de itemtoegangsoperator toe te voegen, krijgt u een resultaat. U kunt hetzelfde resultaat ook verkrijgen met de uitdrukking let omdat dezelfde regels erop worden toegepast.
Inzicht in geneste uitdrukkingen in een omgeving
Dit is weer een voorbeeld van een recordwaarde.
Als u het venster Geavanceerde editor opent, kunt u zien dat de variabelen a en b dezelfde omgeving delen, wat de buitenste omgeving is. Je zult ook zien dat de variabelen x , y en z subuitdrukkingen zijn van de bovenliggende uitdrukking a .
Elke variabele heeft toegang tot alle andere variabelen binnen het geneste record, behalve tot zichzelf. U kunt een variabele aanroepen die in een andere omgeving bestaat. In dit voorbeeld kunt u zien dat z verwijst naar b in de buitenomgeving.
Variabelen x , y en z hebben toegang tot b omdat b deel uitmaakt van hun bovenliggende expressieomgeving. U kunt ook dezelfde variabele hebben, maar in verschillende omgevingen.
In dit andere voorbeeld kunt u zien dat het binnenste en buitenste record een variabele x hebben .
Variabelen moeten uniek zijn binnen hun eigen omgeving. De dichtstbijzijnde x die aan een variabele is toegewezen, wordt gebruikt. In deze voorbeeldquery wordt de binnenste x gebruikt omdat deze dichterbij is vanuit het perspectief van record a .
In deze andere query wordt de dichtstbijzijnde x die in de buurt van variabele b ligt , gebruikt in de uitdrukking.
De buitenste variabele b kan verwijzen naar de variabele x in record a met behulp van de itemtoegangsoperator. U moet verwijzen naar de variabele a en vervolgens toegang krijgen tot x met behulp van vierkante haken. Op dezelfde manier kan record a verwijzen naar de variabele x binnen variabele b .
Wanneer de omgeving van het geneste record a wordt samengevoegd met variabelen uit de bovenliggende expressie, leidt dit tot een conflict omdat x twee keer bestaat en alle variabelen uniek moeten zijn in hun omgeving. Aangezien een variabele niet naar zichzelf kan verwijzen, wordt het conflict opgelost door naar de buitenste x te verwijzen.
Gemeenschappelijke scenario's oplossen
Een veelvoorkomend scenario is het transformeren van geneste objecten. Ter demonstratie wordt deze tabel gebruikt.
Als u een waarde uit de buitenste tabel wilt ophalen en in de geneste tabel wilt plaatsen, zijn er twee manieren om dit te bereiken. De eerste methode is om de optie Aangepaste kolom toevoegen te gebruiken .
Klik op het tabelpictogram in de linkerbovenhoek van het voorbeeldvenster en selecteer Aangepaste kolom toevoegen.
Voer Temp in als kolomnaam en voer een tijdelijke aanduiding in de aangepaste kolomformule in . Als u klaar bent, drukt u op OK.
Vervang in de formulebalk elke uitdrukking door een aangepaste functie door een kolom toe te voegen aan uw geneste tabel. Start de logica voor een aangepaste functie en noem deze OT voor buitenste tabel. Voeg vervolgens het go-to-teken toe.
Gebruik vervolgens de functie Table.AddColumn om een kolom toe te voegen. Raadpleeg de tabel in de buitenste tabel in de kolom Namen. Voer vervolgens een nieuwe kolomnaam in.
Voor dit voorbeeld is de gebruikte kolomnaam Opbrengst . Voer de functie Each in om de waarden van elke rij in de kolom Get Revenue te krijgen.
Als u op de ruimte in de cel van een rij in de kolom Temp klikt, krijgt u een voorbeeld van de geneste tabel onder het voorbeeldvenster. U zult zien dat elke rij de waarde heeft van de buitenste tabel.
Variabelen gebruiken om waarden op te slaan
De tweede methode om geneste objecten te transformeren is door variabelen te gebruiken om waarden op te slaan. Voeg eerst een aangepaste kolom toe en voer Temp2 in als kolomnaam. Gebruik voor de formule de uitdrukking let om waarden in variabelen op te slaan.
Voer let in en schrijf vervolgens een variabelenaam. Voor dit voorbeeld is de naam van de variabele myR . Stel vervolgens de variabele gelijk aan de kolom Get Revenue. Voer daarna de in- clausule in en gebruik de functie Table.AddColumn om een kolom aan de geneste tabel toe te voegen.
Voer voor de eerste parameter van de functie de kolom Namen in die de geneste tabellen bevat. Geef vervolgens de nieuwe kolom Omzet een naam. Gebruik elk om de variabelen van elke rij aan te roepen.
Als u op de spatie in de cel van een rij in de Temp2-kolom klikt, ziet u dat de waarden uit de buitenste tabel zijn opgehaald.
Een ander veelvoorkomend scenario is een zoekopdracht waarbij er geen gedeelde sleutel is. Voor dit scenario worden 2 voorbeeldtabellen gebruikt: een categorietabel en een producttabel .
Gebruik de categorietabel als een faseringsquery om de kenmerken van de productdimensietabel aan te vullen. Aangezien er geen gedeelde sleutel is, kan er geen samenvoeging worden uitgevoerd. Het eerste dat u moet doen, is de volledige categorietabel nesten in de producttabelquery met behulp van Aangepaste kolom toevoegen.
Voeg een aangepaste kolom toe en schrijf Categorie als kolomnaam. Roep vervolgens in de aangepaste formule de categoriequery aan.
Daarna heeft u nu de volledige categorietabel genest in elke rij van de producttabel.
Wanneer u op de ruimte in de cel van een rij in de kolom Categorie klikt, ziet u de volledige categorietabel in elke rij.
Een enkele waarde ophalen
Als u slechts één waarde wilt ophalen, moet u de categorietabel filteren tot op één rij waar een deel van de tekenreeks van het product overeenkomt met de productgroep in de categorietabel.
Open het dialoogvenster Aangepaste kolom door op de tandwielknop naast het deelvenster Aangepaste stappen toegevoegd in het deelvenster Toegepaste stappen te drukken.
Voeg in de formule de functie Table.SelectRows toe . Voor de eerste parameter wordt de categorietabel gebruikt. De tweede parameter gebruikte de functie Text.Contains als voorwaarde. Voor de binnenste tabel controleert deze functie of een tekst een deel bevat van de productreeks in de buitenste tabel.
Bij het openen van de buitenste tabel zult u merken dat Power Query elk trefwoord in de formulebalk toevoegt . Het is een unaire functie die het onderstrepingsteken ( _ ) als een naamloze variabele neemt. Aangezien u echter alleen toegang hebt tot een kolom, kan deze worden weggelaten.
Als u op de ruimte in de cel van een rij in de kolom Categorie klikt, ziet u nu een enkele rij in elk van de geneste tabellen.
Van daaruit kunt u een waarde voor de categorie extraheren met de combinatie van de operatoren voor rij- en veldtoegang.
Ga terug naar het dialoogvenster Aangepaste kolom en voeg de operators in de formule toe. Om de eerste rij van de tabel te krijgen, voert u 0 in tussen accolades. Zet vervolgens de veldnaam Categorie tussen vierkante haken.
Om de oplossing toekomstbestendig te maken, kunt u uiteindelijk een vraagteken ( ? ) toevoegen om het niet-gevonden gedrag te wijzigen van het retourneren van een fout naar een null.
Hoe de Query-editor werkt in LuckyTemplates
M Taal en de Power Query-editor in LuckyTemplates
Conclusie
Omgevingen en geneste expressies helpen uw query om bepaalde waarden uit uw codes naar voren te brengen om gewenste resultaten te bieden. Het is belangrijk om je hiervan bewust te zijn bij het schrijven van functies , want als je ze begrijpt, kun je meer geavanceerde en complexe scenario's oplossen.
Melissa
Wat is zelf in Python: voorbeelden uit de echte wereld
Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.
In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.
Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.
In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.
Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.
Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.
Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.
Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.
Wat is LuckyTemplates Gateway? Alles wat u moet weten