Cum inovarea în tehnologie împuternicește sectorul de dezvoltare a aplicațiilor? 1

Cum să interogați cadrul de date Pandas

Nodul sursă: 1017694

Cum să interogați cadrul de date Pandas

Perspectiva unui Data Scientist asupra funcțiilor Python asemănătoare SQL.


By Matei Przybyla, Senior Data Scientist la Favor Delivery



Fotografie de Bruce Hong on Unsplash [1].

Cuprins

 
 

  1. Introducere
  2. Condiții multiple
  3. Fuzionarea pe mai multe coloane specifice
  4. Rezumat
  5. Referinte

Introducere

 
 
Indiferent dacă treceți de la un inginer de date/analist de date sau doriți să deveniți un om de știință de date mai eficient, interogarea cadrului de date se poate dovedi a fi o metodă destul de utilă de a returna anumite rânduri pe care le doriți. Este important de reținut că există o funcție de interogare specifică pentru panda, numită corespunzător, query. Cu toate acestea, voi discuta în schimb celelalte moduri prin care puteți imita interogarea, filtrarea și îmbinarea datelor. Vom prezenta scenarii comune sau întrebări pe care le-ați adresa datelor dvs. și, mai degrabă decât SQL, o vom face cu Python. În paragrafele de mai jos, voi sublinia câteva modalități simple de a interoga rândurile pentru cadrul de date panda cu limbajul de programare Python.

Condiții multiple

 
 



Date mostre. Captură de ecran de la autor [2].

 

În calitate de oameni de știință sau analiști de date, dorim să returnăm anumite rânduri de date. Unul dintre aceste scenarii este în care doriți să aplicați mai multe condiții, toate în aceeași linie de cod. Pentru a afișa exemplul meu, am creat câteva mostre de date false ale unui nume și de familie, precum și sexul și data nașterii acestora. Aceste date sunt afișate mai sus în captură de ecran.

Exemplul de condiții multiple va răspunde în esență la o anumită întrebare, la fel ca atunci când utilizați SQL. Întrebarea este, ce procent din datele noastre este sex masculin OR o persoană care s-a născut între 2010 și 2021.

Iată codul care va rezolva această întrebare (Există câteva moduri de a răspunde la această întrebare, dar iată modul meu specific de a face acest lucru):

print(“Percent of data who are Males OR were born between 2010 and 2021:”, 100*round(df[(df[‘Gender’] == ‘M’) | (df[‘Birthdate’] >= ‘2010–01–01’) & (df[‘Birthdate’] <= ‘2021–01–01’)][‘Gender’].count()/df.shape [0],4), “%”)

Pentru a vizualiza mai bine acest cod, am inclus și această captură de ecran a aceluiași cod de mai sus, împreună cu ieșirea/rezultatul. De asemenea, puteți aplica aceste condiții pentru a returna rândurile reale, în loc să obțineți fracțiunea sau procentul de rânduri din rândurile totale.



Codul condițiilor. Captură de ecran de către autor [3].

 

Iată ordinea comenzilor pe care le-am efectuat:

  • Returnează rândurile cu Male Gender
  • Includeți fișierul OR funcţie |
  • Întoarceți rândurile de Birthdate > 2010 și 2021
  • Combinați-le pe toate și apoi împărțiți la numărul total de rânduri

După cum puteți vedea, acest cod este similar cu ceva ce ați vedea în SQL. Personal, cred că este mai ușor în panda, deoarece poate fi mai puțin cod, în timp ce puteți vedea vizual tot codul într-un singur loc ușor, fără a fi nevoie să derulați în sus și în jos (dar acest format este doar preferința mea).

Fuzionarea pe mai multe coloane specifice

 
 



Rezultatul cadrului de date îmbinat. Captură de ecran de către autor [4].

 

Probabil că am văzut cum să îmbinam cadrele de date împreună în alte tutoriale, așa că am vrut să adaug o abordare unică pe care nu am văzut-o cu adevărat acolo, care se îmbină pe mai multe coloane specifice. În acest scenariu, dorim să unim două cadre de date în care două câmpuri sunt partajate între ele. Ai putea spune că dacă există și mai multe coloane, această metodă ar putea fi și mai utilă.

Avem primul nostru cadru de date, care este df, apoi unim coloanele noastre pe un al doilea cadru de date, df2. Iată acel cod pentru a obține rezultatul așteptat:

merged_df = df.merge(df2, how=’inner’, left_on=cols, right_on=cols )

Pentru a vizualiza mai bine această fuziune și cod, am prezentat captura de ecran de mai jos. Vedeți cum arată al doilea cadru de date mai jos, cu First și Last nume, așa cum sunt în primul cadru de date, dar cu o nouă coloană, Numeric. Apoi, avem anumite coloane pe care am vrut să le îmbinăm, în timp ce returnăm coloane GenderBirthdate, și noul Numeric coloana de asemenea. Coloanele sunt o listă de coloane, care este numită cols.



Îmbinarea cadrului de date. Captură de ecran de către autor [5].

 

După cum puteți vedea, acest mod de îmbinare a cadrelor de date este o modalitate simplă de a obține aceleași rezultate pe care le-ați obține dintr-o interogare SQL.

Rezumat

 
 
În acest tutorial, am văzut două întrebări frecvente sau interogări pe care le-ați efectua în SQL, dar, în schimb, le-ați efectuat cu cadre de date panda în Python.

Pentru a rezuma, iată cele două scenarii cu care am lucrat:

  1. Returnarea procentului de rânduri din setul de date total din mai multe condiții
  2. Îmbinarea pe mai multe coloane specifice pentru a returna un cadru de date final cu o coloană nouă

Sper că ați găsit articolul meu atât interesant, cât și util. Vă rugăm să nu ezitați să comentați mai jos dacă sunteți de acord sau nu cu aceste metode. De ce sau de ce nu? Acestea pot fi clarificate cu siguranță și mai mult, dar sper că am reușit să arunc puțină lumină asupra unora dintre modurile în care puteți folosi panda și Python în loc de SQL. Vă mulțumim pentru citit!

Vă rugăm să nu ezitați să verificați profilul meu, Matt Przybyla, și alte articole, precum și contactați-mă pe LinkedIn.

Nu sunt afiliat la aceste companii.

 
Referinte

[1] Fotografie de Bruce Hong on Unsplash(2018)

[2] M. Przybyla, exemplu de captură de ecran cu date, (2021)

[3] M. Przybyla, captură de ecran cu codul condițiilor, (2021)

[4] M. Przybyla, captură de ecran pentru rezultatul cadrului de date îmbinate, (2021)

[5] M. Przybyla, captură de ecran a cadrului de date care fuzionează, (2021)

 
Bio: Matei Przybyla este Senior Data Scientist la Favor Delivery și un scriitor tehnic independent, în special în știința datelor.

Original. Repostat cu permisiunea.

Related:

Sursa: https://www.kdnuggets.com/2021/08/query-pandas-dataframe.html

Timestamp-ul:

Mai mult de la KDnuggets