Kuidas uuendused tehnikas rakenduste arendussektorit võimendavad? 1

Kuidas oma Panda andmeraami päringuid teha

Allikasõlm: 1017694

Kuidas oma Panda andmeraami päringuid teha

Andmeteadlase vaatenurk SQL-i sarnastele Pythoni funktsioonidele.


By Matthew Przybyla, Favor Delivery vanemteadur



Foto: Bruce Hong on Unsplash [1].

Sisukord

 
 

  1. Sissejuhatus
  2. Mitu tingimust
  3. Mitme konkreetse veeru ühendamine
  4. kokkuvõte
  5. viited

Sissejuhatus

 
 
Olenemata sellest, kas lähete üle andmeinsenerist/andmeanalüütikust või soovite saada tõhusamaks andmeteadlaseks, võib andmeraami päringute tegemine osutuda üsna kasulikuks meetodiks konkreetsete soovitud ridade tagastamiseks. Oluline on märkida, et pandade jaoks on olemas spetsiaalne päringufunktsioon, millel on sobiv nimi, query. Selle asemel räägin aga muudest viisidest, kuidas saate oma andmete päringuid, filtreerimist ja liitmist jäljendada. Esitame levinumad stsenaariumid või küsimused, mida oma andmetele esitaksite, ja SQL-i asemel teeme seda Pythoniga. Allolevates lõikudes kirjeldan mõningaid lihtsaid viise, kuidas Pythoni programmeerimiskeelega pandade andmeraami ridadesse päringuid teha.

Mitu tingimust

 
 



Näidisandmed. Ekraanitõmmis autorilt [2].

 

Andmeteadlaste või andmeanalüütikutena tahame tagastada konkreetsed andmeread. Üks neist stsenaariumidest on olukord, kus soovite rakendada mitu tingimust, mis kõik asuvad samal koodireal. Oma näite kuvamiseks olen loonud mõned võltsitud näidisandmed ees- ja perekonnanimest, samuti nende soost ja sünnikuupäevast. Need andmed kuvatakse ülaloleval ekraanipildil.

Näidis mitu tingimust vastab sisuliselt konkreetsele küsimusele, täpselt nagu SQL-i kasutamisel. Küsimus on selles, mitu protsenti meie andmetest on meessoost OR isik, kes on sündinud aastatel 2010–2021.

Siin on kood, mis selle küsimuse lahendab (sellele küsimusele vastamiseks on mitu võimalust, kuid siin on minu konkreetne viis seda teha):

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

Selle koodi paremaks visualiseerimiseks olen lisanud ka selle sama koodi ekraanipildi ülalt koos väljundi/tulemusega. Neid tingimusi saate rakendada ka tegelike ridade tagastamiseks, selle asemel et saada ridade murdosa või protsentide koguarvust välja.



Tingimuste kood. Ekraanipilt autorilt [3].

 

Siin on meie sooritatud käskude järjekord:

  • Tagasta read Male'iga Gender
  • Kaasa OR funktsioon |
  • Tagasta read Birthdate > 2010 ja 2021
  • Kombineerige need kõik ja jagage seejärel ridade koguarvuga

Nagu näete, on see kood sarnane millelegi, mida näete SQL-is. Mina isiklikult arvan, et pandades on see lihtsam, kuna see võib sisaldada vähem koodi, samas on võimalik kogu kood visuaalselt näha ühes kohas, ilma et peaks üles-alla kerima (aga see formaat on lihtsalt minu eelistus).

Mitme konkreetse veeru ühendamine

 
 



Ühendatud andmeraami tulemus. Ekraanipilt autorilt [4].

 

Tõenäoliselt oleme näinud, kuidas andmekaare teistes õpetustes kokku liita, nii et tahtsin lisada ainulaadse lähenemisviisi, mida ma tegelikult pole seal näinud, mis ühendab mitut konkreetset veergu. Selle stsenaariumi korral tahame ühendada kaks andmeraami, kus nende vahel on jagatud kaks välja. Võite öelda, et kui veerge on veelgi rohkem, võib see meetod olla veelgi kasulikum.

Meil on esimene andmekaader, milleks on df, ja seejärel ühendame veerud teisele andmeraamile df2. Siin on see kood meie oodatud tulemuse saavutamiseks:

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

Selle ühendamise ja koodi paremaks visualiseerimiseks olen esitanud alloleva ekraanipildi. Näete, kuidas teine ​​andmeraam välja näeb allpool koos First ja Last nimed, nagu need on esimeses andmeraamis, kuid uue veeruga, Numeric. Seejärel on meil välja toodud konkreetsed veerud, millega soovisime veerge tagastades liita GenderBirthdateja uus Numeric veerus samuti. Veerud on veergude loend, millele antakse nimed cols.



Andmeraami ühendamine. Ekraanipilt autorilt [5].

 

Nagu näete, on see andmekaadrite liitmise viis lihtne viis samade tulemuste saavutamiseks, mida saaksite SQL-päringuga.

kokkuvõte

 
 
Selles õpetuses nägime kahte levinud küsimust või päringut, mida esitaksite SQL-is, kuid mille asemel oleksite need Pythonis panda andmeraamidega täitnud.

Kokkuvõtteks on siin kaks stsenaariumi, millega me töötasime.

  1. Tagastab mitme tingimuse ridade protsendi kogu andmekogumist
  2. Mitme konkreetse veeru ühendamine, et tagastada lõplik andmeraamistik uue veeruga

Loodan, et leidsite minu artikli nii huvitavaks kui ka kasulikuks. Kui nõustute või ei nõustu nende meetoditega, kommenteerige allpool. Miks või miks mitte? Neid saab kindlasti veelgi selgitada, kuid ma loodan, et suutsin veidi valgustada mõningaid viise, kuidas pandasid ja Pythonit SQL-i asemel kasutada. Täname, et lugesite!

Palun vaadake julgelt minu profiili, Matt Przybyla, ja muid artikleid, samuti võtke minuga LinkedInis ühendust.

Ma ei ole nende ettevõtetega seotud.

 
viited

[1] Foto autor Bruce Hong on Unsplash(2018)

[2] M. Przybyla, näidisandmete ekraanipilt, (2021)

[3] M. Przybyla, tingimuste koodi ekraanipilt, (2021)

[4] M. Przybyla, ühendatud andmeraami tulemuse ekraanipilt, (2021)

[5] M. Przybyla, ühendava andmeraami ekraanipilt, (2021)

 
Bio: Matthew Przybyla on Favor Delivery vanemandmeteadlane ja vabakutseline tehniline kirjanik, eriti andmeteaduses.

Originaal. Loaga uuesti postitatud.

Seotud:

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

Ajatempel:

Veel alates KDnuggets