Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
Pentru tutorialul de astăzi, vom construi o funcție de interogare personalizată LuckyTemplates care se va ocupa de un format comun de date stivuite greu de gestionat. Această tehnică este ușor de reutilizat pe mai multe rapoarte și mai multe tabele. Puteți viziona videoclipul complet al acestui tutorial în partea de jos a acestui blog.
Aceasta este o continuare a tutorialului pe care l-am făcut recent, în care ne-am ocupat de un format comun de date stivuite greu de gestionat și am folosit Modulo, Pivot și unele funcții de curățare cu Power Query pentru a transforma acele date într-un format organizat și funcțional.
Este foarte probabil că va trebui să repetați acest proces. Dacă acest tip de format a rezultat dintr-o copiere și inserare, probabil că se va întâmpla din nou. Deci, în acest caz, probabil că veți dori să construiți o funcție personalizată care va fi reutilizabilă pe mai multe rapoarte și mai multe tabele, indiferent de cum sunt denumite și ce altceva se află în acele tabele.
Cuprins
Cum să creați și să depanați funcții de interogare personalizate LuckyTemplates
Să trecem la Power Query în acest sens. Dacă mergem la tabelul nostru de date, în Editorul avansat, avem codul M pentru modul în care am ajuns să trecem de la datele acelei stive la formatul dorit.
Dacă vrem să reutilizam acest lucru, facem doar clic dreapta pe Date și spunem, Creare funcție .
Spune că nu va face referire la niciun parametru, dar este în regulă să creați o funcție fără parametri. Vom răspunde, da, pentru că vom adăuga parametrii pe măsură ce mergem în Editorul avansat. Vom numi această funcție, Unstack – 3 Elements , doar pentru că avem cele trei rânduri în format brut. Dacă am avea un format cu două rânduri, probabil că am construi unul separat care să fie de două sau patru elemente.
Așa că acum, avem acest Invoke, nu avem parametri și să mergem la Editorul Avansat și să începem să lucrăm la acesta.
În primul rând, nu avem nevoie de această Sursă. Vom folosi parametrii funcției pentru a ne defini sursa.
Vrem să definim parametrul care va veni. Facem asta cu o paranteză deschisă și apoi un nume de parametru. Să numim asta, Stivă , care va fi acea coloană de date care este datele stivei neformatate care au venit din lipirea adreselor de e-mail.
Vrem ca aceasta să apară ca o listă și vrem ca aceasta să rezulte într-un tabel, deoarece pe măsură ce îl dezactivăm de la acea singură coloană la mai multe coloane, se trece de la o listă la un tabel. Și acum, trebuie să convertim acea listă primită într-un tabel, astfel încât să putem adăuga indexul nostru, să inițiem modul de dezactivare și să facem toate lucrurile pe care trebuie să le facem pentru a-l reformata.
Îl vom numi ConvertStack și va folosi o funcție numită Table.FromList . La fel ca multe dintre funcțiile M, face exact ceea ce spune. Este nevoie doar de o listă. În acest caz, lista va fi lista noastră Stack. Și apoi, trebuie să înlocuim sursa aici cu ConvertStack-ul nostru. Arata destul de bine! Nu avem erori de sintaxă, așa că să apăsăm Terminat.
Acum ne oferă ceea ce ne-am dorit, adică abilitatea de a alege o coloană.
Apoi, vom alege TestData, care sunt datele greșite formatate. Vom alege coloana Valoare, apoi facem clic pe OK. După aceea, facem clic pe Invoke.
Cu toate acestea, primim această eroare. Este foarte greu de identificat care este această eroare. Una dintre problemele cu funcțiile personalizate este că nu depășesc Pașii aplicați, ci doar un pas pentru întreaga funcție personalizată. Dar există o modalitate de ocolire a asta în depanarea pe care ți-o voi arăta. Vă va fi mult mai ușor să vă dați seama ce se întâmplă aici.
În loc să rulăm acest lucru pentru moment ca o funcție, o vom rula ca o interogare. Vom iniția manual acel apel Stack. Trebuie să definim ce este Stack pentru că nu îl desenăm prin interacțiunea de a-l alege în Invoke. Deci, avem Stack egal cu TestData și coloana Value din TestData.
Ceea ce face este că îl descompune acum în Pașii aplicați. Acest lucru ne va ajuta să înțelegem de ce nu funcționează. Observați un lucru interesant când tragem Stack. Inițial, acesta trage TestData[Value], dar când îl convertim într-un tabel, în loc de Value este antetul coloanei, antetul coloanei este acum Coloana1.
Amintiți-vă mesajul de eroare, a fost că nu a putut găsi coloana Valoare. Motivul pentru care nu a putut găsi coloana Value este că, funcția Table.FromList o redenumește în Column1.
Dacă coborâm în pașii aplicați, puteți vedea că este în pasul Added Custom unde primim eroarea. Aici nu a fost găsită valoarea înregistrării.
Și așa, dacă mergem la Editorul avansat, găsim acel câmp Personalizat și putem vedea că este în Text.Remove unde scoatem acele caractere nedorite de care nu aveam nevoie, dar se referă în continuare la câmpul Valoare. Vom schimba asta în Coloana 1. De asemenea, în câmpul Coloane eliminate, se referă la Valoare, așa că îl vom schimba și în Coloana1.
Și când ajungem la sfârșitul Pașilor Aplicați, produce rezultatul final perfect.
Acum că știm că funcționează corect, mai avem doar un lucru de făcut. Rețineți că, pentru a o depana, am transformat funcția personalizată într-o interogare. Și așa, acum trebuie să luăm acea interogare și să o transformăm înapoi într-o funcție.
Crearea unei funcții de curățare a textului personalizat în
codul M Power Query în coloanele personalizate Power Query | Interogarea funcției LuckyTemplates
și operatori în Editorul de interogări
Concluzie
În acest tutorial, am construit această funcție personalizată, am depanat-o, am testat-o și funcționează excelent. Și așa că acum, oricând avem o stivă de trei elemente, putem doar să selectăm acel tabel, să alegem acea coloană din tabel și să rulăm acea funcție personalizată. Apoi, aplicați Modulo, unpivot-ul și curățați.
Acest lucru ar trebui să vă ofere câteva instrumente frumoase în ceea ce privește crearea de funcții personalizate. De asemenea, amintiți-vă acel truc despre depanare, transformându-l înapoi într-o interogare dintr-o funcție și apoi comutându-l înapoi după depanare. Este un instrument cu adevărat valoros care face mult mai ușoară depanarea funcțiilor personalizate.
Toate cele bune!
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