Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
Interpolarea este o metodă de generare de puncte între puncte date. În acest tutorial, voi arăta cum puteți utiliza interpolarea în gestionarea datelor lipsă în Python. Puteți viziona videoclipul complet al acestui tutorial în partea de jos a acestui blog.
În Python, interpolarea este o tehnică folosită în cea mai mare parte pentru a imputa valorile lipsă în cadrul sau seria de date în timpul preprocesării datelor. Voi demonstra cum puteți folosi această metodă pentru a estima punctele de date lipsă din datele dvs. folosind Python în LuckyTemplates.
Dacă ne uităm la datele noastre originale de mai jos, care sunt reprezentate în graficul de sus, putem vedea că există o mulțime de găuri sau date lipsă pe care nu le putem reprezenta grafic pentru că nu există nimic acolo. Dar în graficul de jos, putem vedea că am făcut o estimare pentru a ne da seama cum ar putea arăta acele date. Datele reale sunt reprezentate în albastru deschis, în timp ce datele interpolate sunt în albastru închis.
Sunt câteva tipuri diferite de estimări pe care le vom face. Vom face o interpolare liniară, o interpolare cea mai apropiată și apoi o interpolare ponderată în timp. Fiecare dintre acestea ne va da rezultate ușor diferite.
Exemplul de mai sus folosește interpolarea ponderată a timpului, care arată aproape la fel cu interpolarea liniară, cu excepția faptului că aceasta este ponderată în funcție de zile. Linear a estimat datele pe baza pantei dintre aceste două puncte de date. Nearest Interpolation are un tip mai plat de estimare, așa cum puteți vedea mai jos, unde ne-am uitat la cea mai apropiată valoare și am putut estima ce există între cele două.
Deci, să sărim la un caiet Jupyter și să aducem asta.
Cuprins
Cum să utilizați interpolarea în gestionarea datelor lipsă în Python
Ai putea folosi Editorul de scripturi pentru a scrie totul, dar este mai ușor. Primiți mai multe feedback în blocnotesul dvs. Jupyter. Deci, hai să documentăm ceea ce facem. Când copiem și lipim acest lucru în Editorul nostru de scripturi Python, va fi foarte curat și clar.
Să importăm bibliotecile pe care le dorim și vom importa Pandas și le vom salva ca PD variabilă. Vom importa Numpy și îl vom salva ca variabila NP. Pandas este o bibliotecă de manipulare a datelor, în timp ce Numpy ne permite să facem și manipularea datelor și ne oferă o algebră liniară.
Vrem să aducem setul nostru de date și îl vom salva ca variabilă df . Și vom folosi doar variabila Pandas ( pd ) și vom folosi funcția read.csv . Apoi, vom copia și lipi unde există acel fișier pe computerul nostru. Al meu este în directorul meu de lucru, așa că tot ce trebuie să fac este să scriu machines.csv și să îl încapsulez în paranteză.
Și să aruncăm o privire la setul nostru de date doar folosind variabila df. Puteți vedea că aceasta merge de la 1 an 2022 până la 25. Sunt zile consecutive până la data de 15, iar apoi lipsesc patru zile pe data de 19, iar apoi lipsesc trei zile când ajungem la data de 22 și lipsesc două zile pe data de 25.
Zilele care sunt sărite nu sunt date lipsă. Acestea nu sunt date din setul nostru de date. Ceea ce ne vom ocupa este de date lipsă, pe care le vedeți reprezentate cu aceste valori NaN sau fără valori.
Acum că avem setul de date, să folosim diferitele noastre tipuri de interpretare și să le salvăm ca coloane diferite. Putem vedea că avem object , care este reprezentat de un text și avem și un float .
Voi izola coloana Data folosind notația paranteze. Apoi, voi folosi equals pentru a atribui asta. Voi folosi variabila pd , apoi voi folosi doar funcția to_datetime. Și apoi, voi închide acea funcție cu paranteza și voi adăuga în coloana Data.
Putem vedea că acum avem Data ca tip de date adecvat.
Avem aici un index, care este indicat prin numerele de la 1 la 18. Când facem Linear, vom folosi aceste numere pentru a crea o conexiune liniară între punctele de date existente. Dar dorim și să putem folosi o interpolare ponderată în timp, care privește timpul și ne oferă rezultatele pe baza zilelor reale. Dorim să setăm coloana Data ca index, astfel încât să o putem utiliza.
Voi folosi variabila mea cadru de date (df) și voi face set_index. Trebuie să trecem un parametru numit inplace pentru a ne asigura că este transmis permanent. Deci, voi folosi inplace equals true, apoi voi apăsa shift și enter. Și cu asta, puteți vedea că indexul numeric a dispărut și avem un index Datetime.
Acum, putem începe să construim acele coloane pe care le dorim. Să construim o coloană în care interpolăm cel mai apropiat punct de date, care va completa aceste valori lipsă cu cea mai apropiată valoare. Vrem să creăm o coloană numită users_nearest și vrem să o atribuim unei coloane Users .
Vrem să creăm o coloană numită user_nearest și vrem să o atribuim unei coloane de utilizator. Și acum că avem acea coloană izolată, putem folosi funcția de interpolare și putem apăsa shift-tab pentru a vedea ce parametri ia această funcție. Există multe tipuri diferite de metode.
Puteți vedea că implicit este liniar și, dacă doriți să vadă toate metodele diferite, există informații în aceasta. Puteți deschide acest lucru până la capăt și există o mulțime de informații aici care vă vor oferi o mulțime de informații. Dar este întotdeauna mai bine să mergeți la site-ul Pandas și să vedeți care sunt toate tipurile diferite de interpolări.
Acum vom trece în metoda pe care o dorim și vom folosi metoda Nearest Interpolation. Tot ce trebuie să facem este să rulăm acest lucru și puteți vedea că este creată o coloană. Dacă ne uităm la acea linie, o putem vedea ca o valoare lipsă. Și puteți vedea că a fost interpolat acolo unde a luat cea mai apropiată valoare și a adăugat-o aici. După cum puteți vedea, nu mai avem valori lipsă pentru acel rând.
Acum, să copiem acest lucru de două ori și să schimbăm numele acestor coloane în user_linear și user_time . Vom schimba și metodele pentru a se potrivi cu titlurile noastre. Putem schimba și intra și puteți vedea că am creat trei coloane bazate pe diferite tipuri de metode de interpolare.
În continuare, vreau să creez încă o coloană specială care ne permite să indicăm care dintre acestea sunt goale, ca un steag în datele noastre. Vom folosi Numpy pentru asta.
Deci, vom crea o nouă coloană numită df și apoi o vom numi flag. Vom atribui asta cu acel semn egal. Apoi, vom folosi np , care este variabila noastră Numpy. Și apoi, vom folosi funcția where , care este o funcție condiționată. Punem condiția și apoi obținem un exemplu pentru adevărat și fals. Folosim dublu egal, care este egal în Python. Când este adevărat, vrem să spunem Date lipsă . Cealaltă opțiune va fi Date .
Putem folosi acel steag în vizualul nostru. Odată ce ne aflăm în blocnotes, treceți la transformare și apăsați Run script Python. Acum sunt câțiva pași diferiți. Trebuie să facem ca acest lucru să funcționeze în mediul LuckyTemplates .
Avem toate codurile noastre aici și trebuie să mai adăugăm câțiva pași. În primul rând, atunci când avem de-a face cu data-ora, trebuie să adăugăm un parametru de eroare care spune că, dacă avem erori, îl puteți constrânge sau încerca să îl schimbați. Așadar, voi pune aici erori egale și apoi constrângerea parantezei . În continuare, trebuie să reatribuim variabila setului de date ca df.
Când facem clic pe OK, vom primi o altă eroare și aceasta este ceea ce trebuie să facem pentru a remedia acest lucru. Dacă trecem peste pașii noștri, trebuie să nu avem data formatată. Vom lăsa Python să lucreze cu datele, deoarece datele sunt unice pentru fiecare platformă. Primul lucru pe care trebuie să-l facem este să scăpăm de tipul modificat .
Nu avem coloana Data deoarece data este indexul. Deci, ne întoarcem la scriptul nostru Python și apoi ne resetam indexul, df.reset_index . Spunem că vrem să o resetam la ocolirea coloanei Date din acea paranteză și apoi vrem să facem inplace = true .
Și acum, avem Data și toate celelalte tipuri de date sunt complete.
Dacă punem asta într-un vizual, așa arată în trei metode diferite de interpolare în gestionarea datelor lipsă în Python.
Rate valutare în LuckyTemplates: gestionarea datelor lipsă
Scripturi Python în rapoartele de date LuckyTemplates
Cum să încărcați seturi de date eșantioane în Python
Concluzie
Ați învățat în acest tutorial trei metode de interpolare în gestionarea datelor lipsă în Python . Am discutat despre metodele de interpolare liniară, cea mai apropiată și ponderată în timp.
Sper că veți găsi acest lucru util și îl aplicați în propria dvs. lucrare. Puteți urmări tutorialul video complet de mai jos pentru mai multe detalii și puteți consulta linkurile de mai jos pentru mai multe conținuturi legate de gestionarea datelor lipsă în Python.
Toate cele bune!
Gaelim
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