Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
În acest tutorial, veți afla despre expresii imbricate, obiecte și medii în Power Query . Expresiile și variabilele imbricate vor fi folosite pentru a discuta cum funcționează mediile și pentru a ajuta la generarea datelor. Veți învăța, de asemenea, să faceți față unor scenarii comune atunci când transformați obiecte imbricate.
Cuprins
Crearea expresiilor imbricate
Expresiile sunt definite ca o formulă utilizată pentru a construi valoarea.
Expresia din bara de formule este construită din sub-expresii. Literale 1 și 2 sunt sub-expresii ale expresiei părinte.
Variabilele sunt definite ca valori numite. Acesta este un exemplu de înregistrare.
Dacă deschideți fereastra Editor avansat, puteți vedea variabilele utilizate în interogare.
Variabilele a , b și c reprezintă fiecare o valoare care este rezultatul unei expresii pe care o veți găsi adesea după un semn egal. Toate variabilele din expresia părinte, care este înregistrarea în sine, formează mediul acelei înregistrări. În acel mediu, fiecare variabilă trebuie să fie unică.
Deci, dacă adăugați o altă variabilă numită c , veți vedea un mesaj de eroare sub fereastra Editor avansat.
Înregistrarea poate accesa toate sub-expresiile sale folosind identificatori sau nume de variabile. Cu toate acestea, pentru expresiile imbricate din înregistrare, fiecare mediu este diferit, deoarece pot accesa toate celelalte variabile din înregistrare, cu excepția lor.
În acest exemplu, puteți vedea că variabila c se referă la ea însăși.
Dacă apăsați pe Terminat, veți primi un mesaj de eroare.
Dacă extrageți valoarea lui c prin adăugarea operatorului de acces la element, veți obține un rezultat. De asemenea, puteți obține același rezultat cu expresia let , deoarece îi sunt aplicate aceleași reguli.
Înțelegerea expresiilor imbricate într-un mediu
Acesta este un alt exemplu de valoare record.
Dacă deschideți fereastra Editor avansat, puteți vedea că variabilele a și b împărtășesc același mediu care este mediul exterior. Veți vedea, de asemenea, că variabilele x , y și z , sunt sub-expresii ale expresiei părinte a .
Fiecare variabilă poate accesa toate celelalte variabile din înregistrarea imbricată, cu excepția lor. Puteți apela o variabilă care există într-un mediu diferit. În acest exemplu, puteți vedea că z face referire la b care se află în mediul exterior.
Variabilele x , y și z pot accesa b deoarece b face parte din mediul lor de expresie părinte. De asemenea, puteți avea aceeași variabilă, dar în medii diferite.
În acest alt exemplu, puteți vedea că înregistrarea interioară și exterioară are o variabilă x .
Variabilele trebuie să fie unice în propriul lor mediu. Va fi folosit cel mai apropiat x alocat unei variabile. În acest exemplu de interogare, x interior este utilizat deoarece este mai aproape din perspectiva înregistrării a .
În această altă interogare, cel mai apropiat x care este aproape de variabila b este folosit în expresie.
Variabila exterioară b se poate referi la variabila x din interiorul înregistrării a folosind operatorul de acces la articol. Trebuie să vă referiți la variabila a și apoi să accesați x folosind un set de paranteze drepte. În același mod, înregistrarea a se poate referi la variabila x din interiorul variabilei b .
Când mediul înregistrării imbricate a este îmbinat cu variabilele din expresia părinte, duce la un conflict deoarece x există de două ori și toate variabilele trebuie să fie unice în mediul lor. Deoarece o variabilă nu se poate referi la ea însăși, conflictul este rezolvat prin referire la x exterior.
Rezolvarea scenariilor comune
Un scenariu comun este transformarea obiectelor imbricate. Pentru a demonstra, va fi folosit acest tabel.
Dacă doriți să preluați o valoare din tabelul exterior și să o plasați în tabelul imbricat, există două moduri de a o obține. Prima metodă este să utilizați opțiunea Adăugați o coloană personalizată .
Faceți clic pe pictograma tabel din colțul din stânga sus al panoului de previzualizare și selectați Adăugați o coloană personalizată.
Introduceți Temp ca nume de coloană și introduceți un substituent în formula personalizată a coloanei . Odată terminat, apăsați OK.
În interiorul barei de formule, înlocuiți fiecare expresie cu o funcție personalizată prin adăugarea unei coloane la tabelul imbricat. Porniți logica pentru o funcție personalizată și numiți-o OT pentru tabelul exterior. Apoi, adăugați semnul de acces.
Apoi, utilizați funcția Table.AddColumn pentru a adăuga o coloană. Consultați tabelul din tabelul exterior găsit în coloana Nume. Și apoi introduceți un nou nume de coloană.
Pentru acest exemplu, numele coloanei folosit este Venituri . Introduceți fiecare funcție pentru a obține valorile fiecărui rând din coloana Obține venituri.
Dacă faceți clic pe spațiul din interiorul celulei unui rând din coloana Temp, veți obține o previzualizare a tabelului imbricat sub panoul de previzualizare. Veți vedea că fiecare rând are valoarea tabelului exterior.
Utilizarea variabilelor pentru a stoca valori
A doua metodă de transformare a obiectelor imbricate este utilizarea variabilelor pentru a stoca valori. Mai întâi, adăugați o coloană personalizată și introduceți Temp2 ca nume de coloană. Pentru formulă, utilizați expresia let pentru a stoca valori în variabile.
Introduceți let și apoi scrieți un nume de variabilă. Pentru acest exemplu, numele variabilei este myR . Apoi, echivalează variabila cu coloana Obține venituri. După aceea, introduceți clauza in și utilizați funcția Table.AddColumn pentru a adăuga o coloană la tabelul imbricat.
Pentru primul parametru al funcției, introduceți coloana Nume care conține tabelele imbricate. Apoi, denumește noua coloană Venit. Folosiți fiecare pentru a apela variabilele fiecărui rând.
Dacă faceți clic pe spațiul din interiorul celulei unui rând din coloana Temp2, veți vedea că a preluat valorile din tabelul exterior.
Un alt scenariu comun este o căutare în care nu există o cheie partajată. Pentru acest scenariu, vor fi utilizate 2 tabele eșantion: un tabel de categorii și un tabel de produse .
Utilizați tabelul de categorii ca o interogare intermediară pentru a completa atributele tabelului cu dimensiunile produsului. Deoarece nu există o cheie partajată, o îmbinare nu poate fi efectuată. Primul lucru pe care trebuie să-l faceți este să așezați întregul tabel de categorii în interogarea tabelului de produse folosind coloana Adăugați o coloană personalizată.
Adăugați o coloană personalizată și scrieți Categoria ca nume de coloană. Apoi, în formula personalizată, apelați interogarea categoriei.
După aceea, acum ați imbricat întregul tabel de categorii în fiecare rând al tabelului de produse.
Când faceți clic pe spațiul din interiorul celulei unui rând din coloana Categorie, puteți vedea tabelul complet de categorii în fiecare rând.
Preluarea unei singure valori
Dacă doriți doar să preluați o singură valoare, trebuie să filtrați tabelul de categorii până la un singur rând în care o parte a șirului din produs are o potrivire cu grupul de produse din tabelul de categorii.
Deschideți caseta de dialog Coloana personalizată apăsând butonul roată de lângă Personalizarea adăugată în panoul Pași aplicați.
În formulă, adăugați funcția Table.SelectRows . Pentru primul parametru se folosește tabelul Category. Al doilea parametru a folosit funcția Text.Contains ca o condiție. Pentru tabelul interior, această funcție verifică dacă un text conține o parte din șirul de produse din tabelul exterior.
La accesarea tabelului exterior, veți observa că Power Query adaugă fiecare cuvânt cheie în bara de formule. Este o funcție unară care ia liniuța de subliniere ( _ ) ca o variabilă fără nume. Cu toate acestea, deoarece accesați doar o coloană, aceasta poate fi omisă.
Dacă faceți clic pe spațiul din interiorul celulei unui rând din coloana Categorie, acum veți vedea un singur rând în fiecare dintre tabelele imbricate.
De acolo, puteți extrage o valoare pentru categorie cu combinația operatorilor de acces rând și câmp.
Reveniți la caseta de dialog Coloana personalizată și adăugați operatorii în formulă. Pentru a obține primul rând al tabelului, introduceți 0 într-un set de paranteze. Apoi, enumerați numele câmpului Categorie într-un set de paranteze pătrate.
Pentru a asigura soluția în viitor, puteți adăuga un semn de întrebare ( ? ) la final pentru a schimba comportamentul negăsit de la returnarea unei erori într-un nul.
Cum funcționează Editorul de interogări în LuckyTemplates
M Language și Power Query Editor în LuckyTemplates
Concluzie
Mediile și expresiile imbricate ajută interogarea dvs. să scoată anumite valori din codurile dvs. pentru a oferi rezultate dorite. A fi conștient de ele este important atunci când scrieți funcții , deoarece atunci când le înțelegeți, veți putea rezolva scenarii mai avansate și mai complexe.
Melissa
Ce este Sinele în Python: Exemple din lumea reală
Veți învăța cum să salvați și să încărcați obiecte dintr-un fișier .rds în R. Acest blog va trata, de asemenea, cum să importați obiecte din R în LuckyTemplates.
În acest tutorial despre limbajul de codare DAX, aflați cum să utilizați funcția GENERATE și cum să schimbați în mod dinamic titlul unei măsuri.
Acest tutorial va acoperi cum să utilizați tehnica Multi Threaded Dynamic Visuals pentru a crea informații din vizualizările dinamice de date din rapoartele dvs.
În acest articol, voi trece prin contextul filtrului. Contextul de filtrare este unul dintre subiectele majore despre care orice utilizator LuckyTemplates ar trebui să învețe inițial.
Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.
Aflați cum să vă calculați modificările marjei de profit folosind tehnici precum măsurarea ramificării și combinarea formulelor DAX în LuckyTemplates.
Acest tutorial va discuta despre ideile de materializare a cache-urilor de date și despre modul în care acestea afectează performanța DAX-ului în furnizarea de rezultate.
Dacă încă utilizați Excel până acum, atunci acesta este cel mai bun moment pentru a începe să utilizați LuckyTemplates pentru nevoile dvs. de raportare a afacerii.
Ce este LuckyTemplates Gateway? Tot ce trebuie să știți