Hvor innovasjon innen teknologi gir apputviklingssektoren en styrke? 1

Slik spør du din Pandas Dataframe

Kilde node: 1017694

Slik spør du din Pandas Dataframe

En dataforskers perspektiv på SQL-lignende Python-funksjoner.


By Matthew Przybyla, Senior Data Scientist hos Favor Delivery



Photo by Bruce Hong on Unsplash [1].

Innholdsfortegnelse

 
 

  1. Introduksjon
  2. Flere betingelser
  3. Slå sammen på flere, spesifikke kolonner
  4. Oppsummering
  5. Referanser

Introduksjon

 
 
Enten du går over fra en dataingeniør/dataanalytiker eller ønsker å bli en mer effektiv dataforsker, kan spørringer i datarammen din vise seg å være en ganske nyttig metode for å returnere spesifikke rader du ønsker. Det er viktig å merke seg at det er en spesifikk spørringsfunksjon for pandaer, passende navn, query. Imidlertid vil jeg i stedet diskutere de andre måtene du kan etterligne spørring, filtrering og sammenslåing av dataene dine. Vi vil presentere vanlige scenarier eller spørsmål som du vil stille til dataene dine, og i stedet for SQL, vil vi gjøre det med Python. I avsnittene nedenfor vil jeg skissere noen enkle måter å spørre rader for din pandas dataramme med Python-programmeringsspråket på.

Flere betingelser

 
 



Eksempeldata. Skjermbilde fra forfatter [2].

 

Som dataforskere eller dataanalytikere ønsker vi å returnere spesifikke rader med data. Et av disse scenariene er der du vil bruke flere betingelser, alle i samme kodelinje. For å vise eksemplet mitt har jeg laget noen falske eksempeldata med for- og etternavn, samt deres respektive kjønn og fødselsdato. Disse dataene vises ovenfor i skjermbildet.

Eksempelet med flere betingelser vil i hovedsak svare på et spesifikt spørsmål, akkurat som når du bruker SQL. Spørsmålet er, hvor mange prosent av dataene våre er mannlig kjønn OR en person som er født mellom 2010 og 2021.

Her er koden som vil løse det spørsmålet (det er noen måter å svare på dette spørsmålet på, men her er min spesifikke måte å gjøre det på):

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

For bedre å visualisere denne koden, har jeg også inkludert dette skjermbildet av den samme koden ovenfra, sammen med utdata/resultat. Du kan også bruke disse betingelsene for å returnere de faktiske radene i stedet for å få brøkdelen eller prosenten av radene ut av det totale antallet rader.



Betingelseskode. Skjermbilde av forfatter [3].

 

Her er rekkefølgen på kommandoene vi utførte:

  • Returner rader med hann Gender
  • Inkluder OR funksjon |
  • Returner radene med Birthdate > 2010 og 2021
  • Kombiner alle, og del deretter på det totale antallet rader

Som du kan se, ligner denne koden på noe du vil se i SQL. Jeg personlig synes det er enklere i pandaer fordi det kan være mindre kode, samtidig som jeg kan se all koden visuelt på ett enkelt sted, uten å måtte rulle opp og ned (men dette formatet er bare min preferanse).

Slå sammen på flere, spesifikke kolonner

 
 



Sammenslått datarammeresultat. Skjermbilde av forfatter [4].

 

Vi har sannsynligvis sett hvordan man slår sammen datarammer i andre opplæringsprogrammer, så jeg ønsket å legge til en unik tilnærming som jeg egentlig ikke har sett der ute, som er å slå sammen på flere, spesifikke kolonner. I dette scenariet ønsker vi å slå sammen to datarammer der to felt er delt mellom dem. Du kan fortelle at hvis det er enda flere kolonner, kan denne metoden være enda mer nyttig.

Vi har vår første dataramme, som er df, så slår vi sammen kolonnene våre på en andre dataramme, df2. Her er den koden for å oppnå vårt forventede resultat:

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

For bedre å visualisere denne sammenslåingen og koden, har jeg presentert skjermbildet nedenfor. Du ser hvordan den andre datarammen ser ut nedenfor, med First og Last navn, akkurat som de er i den første datarammen, men med en ny kolonne, Numeric. Deretter har vi ut spesifikke kolonner som vi ønsket å slå sammen på, mens vi returnerer kolonner GenderBirthdate, og den nye Numeric kolonne også. Kolonnene er en liste over kolonner, som er navngitt cols.



Slår sammen dataramme. Skjermbilde av forfatter [5].

 

Som du kan se, er denne måten å slå sammen datarammer på en enkel måte å oppnå de samme resultatene som du ville fått fra en SQL-spørring.

Oppsummering

 
 
I denne opplæringen så vi to vanlige spørsmål eller spørringer som du ville utføre i SQL, men i stedet har utført dem med pandas-datarammer i Python.

For å oppsummere, her er de to scenariene vi jobbet med:

  1. Returnerer prosentandelen av rader av det totale datasettet fra flere forhold
  2. Slå sammen på flere, spesifikke kolonner for å returnere en endelig dataramme med en ny kolonne

Jeg håper du fant artikkelen min både interessant og nyttig. Kommenter gjerne nedenfor hvis du er enig eller uenig i disse metodene. Hvorfor eller hvorfor ikke? Disse kan sikkert avklares ytterligere, men jeg håper jeg klarte å kaste lys over noen av måtene du kan bruke pandaer og Python i stedet for SQL. Takk for at du leser!

Ta gjerne en titt på profilen min, Matt Przybyla, og andre artikler, samt ta kontakt med meg på LinkedIn.

Jeg er ikke tilknyttet disse selskapene.

 
Referanser

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

[2] M. Przybyla, eksempeldataskjermbilde, (2021)

[3] M. Przybyla, skjermbilde for tilstandskode, (2021)

[4] M. Przybyla, skjermbilde av sammenslått datarammeresultat, (2021)

[5] M. Przybyla, skjermbilde av sammenslåing av dataramme, (2021)

 
Bio: Matthew Przybyla er Senior Data Scientist ved Favor Delivery, og en frilans teknisk skribent, spesielt innen datavitenskap.

original. Ompostet med tillatelse.

Relatert:

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

Tidstempel:

Mer fra KDnuggets