Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
Vă voi arăta cum să vă mențineți actualizat setul de date de practică de fiecare dată când faceți o reîmprospătare . Puteți urmări videoclipul complet al acestui tutorial în partea de jos a acestui blog.
Dacă doriți cu adevărat să vă îmbunătățiți abilitățile DAX, modalitatea este să îl utilizați și să îl puneți în practică. Și pentru a face asta, ai nevoie de un set de date practice care să te ajute să vizualizezi și să lucrezi la posibile scenarii din viața reală.
Problema cu seturile de date de practică este că datele sunt de obicei statice . Pentru ca tu să exersezi eficient, trebuie să dai impresia că datele sunt live.
Cuprins
Configurarea unei căi de fișier pentru setul de date de practică
Pentru datele mele eșantion, am un fișier Excel care conține date de vânzări din 2014, 2015 și 2016.
Acestea sunt datele pe care trebuie să le actualizez.
Locația documentului poate fi găsită aici pe Bara mea de instrumente Acces rapid.
Am nevoie de asta pentru a seta un parametru pentru calea fișierului meu. Așa că voi copia acea locație a documentului.
Există un punct de acces la Bara de instrumente Acces rapid în partea dreaptă a acesteia.
Odată ce apes pe asta, primesc acest ecran.
Așa că voi alege Toate comenzile și apoi voi alege Locația documentului . Adăugați-l în bara de instrumente Acces rapid și apăsați OK.
Acum, voi intra în Power Query pentru a crea parametrul care va menține calea fișierului meu. Acest pas este important deoarece permite restaurarea tuturor interogărilor din interiorul modelului în cazul în care un alt utilizator schimbă locația fișierului.
Deci voi crea un nou parametru .
O să-l numesc FileLocation .
Sub tip, voi selecta Text . Și pentru Valoarea curentă , voi lipi în locația documentului pe care am copiat-o mai devreme.
Voi crea o nouă interogare.
Apoi voi alege eșantionul de date pe care le voi folosi ca set de date de practică.
O serie de tabele diferite vor apărea aici, deoarece am date de vânzări din 2014, 2015 și 2016. Trebuie doar să-l aleg pe primul, care este Sales_2014 .
Acum că am ales datele Sales_2014, este timpul să schimb acea locație a fișierului codificat într-o locație dinamică .
Voi intra în Editorul avansat și voi selecta tot ceea ce are legătură cu locația fișierului .
Apoi, îl voi schimba în parametrul FileLocation pe care l-am creat mai devreme.
Apoi voi apăsa Terminat pentru a bloca acele modificări în interogarea Sales_2014.
Crearea folderului de pregătire a datelor
Privind Pașii aplicați pentru interogarea Vânzări_2014, voi face clic pe pasul Navigare . Acest lucru îmi arată că face referire la pasul Sursă .
De asemenea, face referire la Sales_2014 , care este afișat ca tabel . De asemenea, arată că extrage date din coloana Date.
Acum, permiteți-mi să mă uit la pasul Sursă în continuare.
Pasul Sursă îmi arată tot ce se află în fișierul meu Excel . Dacă verific acele coordonate, văd Sales_2014 , iar sub Kind, scrie Tabel .
Când caut coloana de date, arată obiectul Tabel care a fost extras.
Deci, pot duplica această interogare pentru a veni cu datele din 2015 . Pentru a face asta, trebuie doar să dau clic dreapta pe Sales_2014, apoi să aleg Duplicare.
Apoi, voi reveni la pasul Navigare.
Voi schimba acel an din 2014 în 2015.
De asemenea, îl voi redenumi aici, sub Proprietăți. O voi numi Sales_2015.
De data aceasta, voi duplica Sales_2015.
Apoi voi reveni la pasul Navigare și voi schimba anul în 2016.
Acum am datele mele complete de vânzări. Dar aceste interogări nu ar trebui să fie încărcate în modelul meu . Trebuie doar să dau clic dreapta pe fiecare dintre ele și să deselectez Activați încărcarea .
Acum, voi selecta toate interogările și le voi plasa într-un singur folder pentru a face lucrurile mai organizate.
Voi numi acest folder Data Prep .
Obținerea compensației zilei
Eșantionul de date de aici sub Data Prep va fi statice . Aceasta înseamnă că prima și ultima dată nu se vor schimba niciodată .
Deci voi intra în Sales_2016 și voi sorta coloana Data comenzii în ordine descrescătoare pentru a obține ultima dată din acest set de date .
Ultima dată din acest set de date este 31 decembrie 2016 .
Acum, voi crea o nouă interogare.
Apoi, voi verifica care este Day Offset de la ultima dată din setul de date până astăzi. Asta înseamnă că trebuie să aflu ce este astăzi. Pentru a face asta, voi folosi funcția DateTime.FixedLocalNow . Acest lucru îmi va da data și ora de la mașina la care lucrez.
Dar nu am nevoie de partea de timp aici. Am nevoie doar de porțiunea dată a acestei valori.
Deci, voi extrage data folosind Date.From .
Apoi, din acea valoare, voi scădea ultima dată din setul meu de date . Deoarece datele sunt statice, pot folosi valoarea intrinsecă a datei . Deci, aceasta este #data și apoi referința la 31 decembrie 2016.
Acum, trebuie să extrag numărul din această diferență . Așa că voi adăuga Number.From și îl voi închide cu o paranteză. Apoi, apăsați enter.
Voi redenumi aceasta ca DayOffset .
Configurarea intervalelor de date dinamice
I also need dynamic date ranges for my date table. I’ll start off by doing a right click on the Data Prep folder and creating a new Blank Query.
Then, I’ll work on the Start Date of my Date table.
I always want the 1st day of the year as my Start Date. So I’ll put the equal sign and use the function Date.StartOfYear.
Since I need to give that a value, I’m going to offset that by using Date.AddDays.
Then I’ll use the intrinsic date value again and use the 1st date on my data set, which is June 1, 2014.
I also need the number of days that I calculated in my DayOffset, so I’m going to add that.
Once I press enter, it gives me January 1, 2017. This is going to be the 1st date in my date table.
I’ll rename that to fxStartDate.
Now, I can set up my End Date. I’m going to copy this syntax I used on my Start Date.
I’ll create a new blank query.
Then rename it to fxEndDate.
Then I’m going to paste the syntax from my Start Date.
Instead of StartOfYear, I’ll change this to EndOfYear.
I’m also going to use the last date of my data set, which is the 31st of December.
When I press enter, it returns December 31st, 2020.
Creating A Single Sales Table
I’m going to combine the 3 tables into a single Sales table. To do that, I’m going to create a new query.
I’ll call this my Sales table.
Then I’ll combine Sales_2014, Sales_2015 and Sales_2016 into a single table.
I know that you can do that through the ribbon, but there’s also an option to do it directly in the formula bar. I’ll choose that 2nd option.
I’ll start with Table.Combine.
Table.Combine requires a list of tables. So I’ll add a list initializer, which is those curly brackets, then I’m going to name the 3 queries. Press enter after that.
Transforming The Order Date Column
Now that I have most of the elements I need, I’m going to generate a key part of the syntax that I’m going to use later on to complete my dynamic practice dataset.
I’ll start by selecting two number columns. I can use the Delivery Region Index and the Product Description Index. On your end, you can press down either Shift or Ctrl to select both columns.
Under the Transform tab, I’ll select Absolute Value.
If I look at the formula bar, it will show the Table.TransformColumns function. This is the key to the final solution.
The function takes a list of transformation lists. As you can see, there are 2 lists here nested inside each other.
It references the column name as text. That’s why Delivery Region Index was referenced here on the 1st set.
Then it adds a transformation step.
It does the same in a separate list for the Product Description Index column.
Now, I’ll head to the Advanced Editor.
I don’t want absolute values. So the first thing I’m going to do is offset my date. I’ll create a function called fxUpdateDate to do that. It’s going to use the current date, which I’ll type in as cDate.
Apoi, voi folosi din nou funcția Date.AddDays , care folosește și cDate . De asemenea, voi folosi DayOffset- ul creat mai devreme.
Tot ceea ce face fxUpdateDate este să ia data. Așadar, dacă îl transmit în funcția Table.TransformColumns , va începe verificarea pentru fiecare dată înregistrată.
Deci, dacă lucrez la primul rând aici, de exemplu, va lua în considerare data de 1 iunie 2014 ca data c.
Și de fiecare dată când funcția este apelată, va adăuga acel DayOffset pe care l-am creat.
Acum, pasul Table.Transform apare în Calculated Absolute Value .
Îl voi redenumi mai întâi și îl voi numi UpdateOrderDate .
Acest pas UpdateOrderDate implică Table.TransformColumns care este egal cu Sursa.
Tabelul inițial afișat este Indexul regiunii de livrare . Dar nu este nevoie să transformăm asta. Deci voi schimba prima coloană referită în coloana OrderDate .
Mai spune aici că transformarea va fi în valori absolute.
Deoarece nu vreau asta, o voi schimba în fxUpdateDate .
Nici tipul nu va fi o valoare absolută, așa că trebuie să schimb și această parte.
O voi schimba într-o întâlnire .
Am nevoie de o singură transformare, așa că voi șterge a doua listă împreună cu pasul de transformare care vine cu acel set...
…deci este doar o transformare pentru coloana OrderDate.
Deoarece am redenumit pasul pentru Valoarea absolută calculată, trebuie să îl schimb și în declarația mea.
Acum arată și UpdateOrderDate .
Deci, coloana OrderDate va apela acum această funcție pentru fiecare înregistrare din Table.TransformColumns .
Privind în coloana Data comenzii, pot vedea că aceasta a fost actualizată.
Și dacă le sortez în ordine descrescătoare, arată 7 iulie 2020 ca dată curentă.
Așa că voi elimina acel pas de sortare pentru că nu am nevoie de el. Am făcut asta doar pentru a verifica dacă a fost actualizată și data curentă.
Aplicarea Time Intelligence folosind codul M
Modelul meu se referă la date de vânzări . Deoarece voi face ceva informații despre timp, aș avea nevoie de un tabel de date .
Deci voi merge pe . În prezentarea codului M , intru în subiectul Tabel extins de date .
Derulați până în partea de sus a paginii și copiați întregul cod .
Revenind la modelul meu, voi crea o nouă interogare goală și voi lipi acel cod M în . Apăsați Terminat.
Voi redenumi acea interogare în fxCalendar .
Pentru parametrii mei, voi folosi data de 1 ianuarie pentru StartDate și 31 ianuarie pentru EndDate . Apoi apăsați Invoke.
După ce apare tabelul, îl voi redenumi ca Date .
Amintiți-vă că am creat deja datele de început și de sfârșit, uitându-mă la prima dată din setul de date eșantion și compensând-o cu DayOffset-ul meu. Deci fxStartDate aici apare ca 1 ianuarie 2017 .
În ceea ce privește fxEndDate, revine pe 31 decembrie 2020 .
Pot să mă întorc la tabelul Date și să actualizez acel pas Sursă și acolo.
Listează parametrii în ordinea în care au fost apelați. Primul parametru ar trebui să arate data de începere .
Voi schimba asta în fxStartDate .
De asemenea, voi înlocui al doilea parametru.
Voi introduce fxEndDate .
Odată ce apăs pe Enter, transformarea este completă. Acum am un set de date de practică complet actualizat, care va rămâne mereu actual.
Voi face doar clic pe Închideți și aplicați pentru a bloca toți acești pași.
Crearea unui tabel dinamic de interogare de date în LuckyTemplates: un tutorial pentru editorul de interogări
Configurarea unei date de început și de sfârșit dinamice pentru tabelele de date Power Query
folosind funcția de compensare în tabelele extinse de date
Concluzie
După cum am menționat mai devreme, a avea propriul set de date dinamice de practică vă va îmbunătăți cu siguranță jocul când vine vorba de LuckyTemplates. Vă permite să vă exersați abilitățile și cunoștințele în timp ce pretindeți că lucrați la un scenariu din viața reală.
Dacă doriți să aflați mai multe despre dinamica datelor dvs. de început și de încheiere, în special pentru un set de date de practică pe care îl utilizați, puteți consulta Forumul LuckyTemplates. Există o mulțime de conversații acolo despre acest lucru, precum și despre alte subiecte relevante. Este posibil să găsiți chiar și alte abordări care ar funcționa pentru dvs.
Toate cele bune,
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