Kako inovacije v tehnologiji krepijo sektor razvoja aplikacij? 1

Kako poizvedovati o podatkovnem okviru Pandas

Izvorno vozlišče: 1017694

Kako poizvedovati o podatkovnem okviru Pandas

Pogled Data Scientista na SQL podobne Pythonove funkcije.


By Matej Przybyla, Višji podatkovni znanstvenik pri Favor Delivery



Foto: Bruce Hong on Unsplash [1].

Kazalo

 
 

  1. Predstavitev
  2. Več pogojev
  3. Spajanje več, določenih stolpcev
  4. Povzetek
  5. Reference

Predstavitev

 
 
Ne glede na to, ali prehajate iz podatkovnega inženirja/podatkovnega analitika ali želite postati učinkovitejši podatkovni znanstvenik, se lahko poizvedovanje po vašem podatkovnem okvirju izkaže za precej uporabno metodo vračanja določenih vrstic, ki jih želite. Pomembno je omeniti, da obstaja posebna poizvedovalna funkcija za pande, ustrezno poimenovana, query. Vendar bom namesto tega razpravljal o drugih načinih, kako lahko posnemate poizvedovanje, filtriranje in združevanje podatkov. Predstavili vam bomo pogoste scenarije ali vprašanja, ki bi jih zastavili svojim podatkom, namesto s SQL pa bomo to storili s Pythonom. V spodnjih odstavkih bom opisal nekaj preprostih načinov poizvedovanja po vrsticah za vaš podatkovni okvir pandas s programskim jezikom Python.

Več pogojev

 
 



Vzorčni podatki. Posnetek zaslona avtorja [2].

 

Kot podatkovni znanstveniki ali podatkovni analitiki želimo vrniti določene vrstice podatkov. Eden od teh scenarijev je, ko želite uporabiti več pogojev, vse v isti vrstici kode. Da bi prikazal svoj primer, sem ustvaril nekaj lažnih vzorčnih podatkov o imenu in priimku ter njunem spolu in datumu rojstva. Ti podatki so prikazani zgoraj na posnetku zaslona.

Primer več pogojev bo v bistvu odgovoril na določeno vprašanje, tako kot pri uporabi SQL. Vprašanje je, kolikšen odstotek naših podatkov predstavlja moški spol OR oseba, ki je bila rojena med letoma 2010 in 2021.

Tukaj je koda, ki bo rešila to vprašanje (obstaja nekaj načinov za odgovor na to vprašanje, toda tukaj je moj poseben način, kako to storiti):

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), “%”)

Za boljšo vizualizacijo te kode sem vključil tudi ta posnetek zaslona iste kode od zgoraj, skupaj z izhodom/rezultatom. Te pogoje lahko uporabite tudi za vrnitev dejanskih vrstic, namesto da bi dobili delež ali odstotek vrstic od skupnega števila vrstic.



Koda pogojev. Posnetek zaslona avtorja [3].

 

Tukaj je vrstni red ukazov, ki smo jih izvedli:

  • Vrnite vrstice z moškim Gender
  • Vključite OR funkcija |
  • Vrni vrstice Birthdate > 2010 in 2021
  • Združite vse in nato delite s skupno količino vrstic

Kot lahko vidite, je ta koda podobna nečemu, kar bi videli v SQL. Osebno menim, da je v pandah lažje, ker je lahko manj kode, hkrati pa lahko vizualno vidite vso kodo na enem preprostem mestu, ne da bi se morali pomikati gor in dol (ampak ta oblika je samo moja prednost).

Spajanje več, določenih stolpcev

 
 



Rezultat združenega podatkovnega okvira. Posnetek zaslona avtorja [4].

 

Verjetno smo videli, kako združiti podatkovne okvire skupaj v drugih vadnicah, zato sem želel dodati edinstven pristop, ki ga v resnici še nisem videl tam zunaj, to je združevanje več specifičnih stolpcev. V tem scenariju želimo združiti dva podatkovna okvira, kjer si delita dve polji. Lahko rečete, da je ta metoda lahko še bolj uporabna, če je stolpcev še več.

Imamo svoj prvi podatkovni okvir, ki je df, nato združujemo naše stolpce v drugem podatkovnem okvirju, df2. Tukaj je ta koda za dosego našega pričakovanega rezultata:

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

Za boljšo vizualizacijo tega združevanja in kode sem predstavil spodnji posnetek zaslona. Vidite, kako je videti drugi podatkovni okvir spodaj, z First in Last imena, tako kot so v prvem podatkovnem okviru, vendar z novim stolpcem, Numeric. Nato imamo posebne stolpce, ki smo jih želeli združiti, medtem ko vrnemo stolpce GenderBirthdateIn novi Numeric tudi stolpec. Stolpci so seznam stolpcev, ki je poimenovan cols.



Združevanje podatkovnega okvira. Posnetek zaslona avtorja [5].

 

Kot lahko vidite, je ta način združevanja podatkovnih okvirov preprost način za doseganje enakih rezultatov, kot bi jih dobili s poizvedbo SQL.

Povzetek

 
 
V tej vadnici smo videli dve pogosti vprašanji ali poizvedbi, ki bi ju izvedli v SQL, vendar ste ju namesto tega izvedli s podatkovnimi okviri pandas v Pythonu.

Če povzamemo, tukaj sta dva scenarija, s katerimi smo delali:

  1. Vrnitev odstotka vrstic iz skupnega nabora podatkov iz več pogojev
  2. Združevanje več določenih stolpcev za vrnitev končnega podatkovnega okvira z novim stolpcem

Upam, da vam je bil moj članek zanimiv in uporaben. Spodaj lahko komentirate, če se s temi metodami strinjate ali ne. Zakaj ali zakaj ne? Vsekakor jih je mogoče še bolj pojasniti, vendar upam, da sem lahko osvetlil nekaj načinov, kako lahko uporabite pande in Python namesto SQL. Hvala za branje!

Vabljeni, da si ogledate moj profil, Matt Przybylain druge članke ter stopite v stik z mano na LinkedInu.

Nisem povezan s temi podjetji.

 
Reference

[1] Avtor fotografije Bruce Hong on Unsplash(2018)

[2] M. Przybyla, posnetek zaslona vzorčnih podatkov, (2021)

[3] M. Przybyla, posnetek kode pogojev, (2021)

[4] M. Przybyla, posnetek zaslona rezultata združenega podatkovnega okvira, (2021)

[5] M. Przybyla, posnetek zaslona z združevanjem podatkovnega okvira, (2021)

 
Bio: Matej Przybyla je višji podatkovni znanstvenik pri Favor Delivery in samostojni tehnični pisec, zlasti na področju podatkovne znanosti.

prvotni. Poročeno z dovoljenjem.

Povezano:

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

Časovni žig:

Več od KDnuggets