Hvordan innovation inden for teknologi giver app -udviklingssektoren styrke? 1

Sådan forespørger du din Pandas dataramme

Kildeknude: 1017694

Sådan forespørger du din Pandas dataramme

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


By Matthew Przybyla, Senior Data Scientist hos Favor Delivery



Photo by Bruce Hong on Unsplash [1].

Indholdsfortegnelse

 
 

  1. Introduktion
  2. Flere betingelser
  3. Sammenfletning på flere, specifikke kolonner
  4. Resumé
  5. Referencer

Introduktion

 
 
Uanset om du skifter fra en dataingeniør/dataanalytiker eller ønsker at blive en mere effektiv dataforsker, kan forespørgsler på din dataramme vise sig at være en ganske nyttig metode til at returnere specifikke rækker, som du ønsker. Det er vigtigt at bemærke, at der er en specifik forespørgselsfunktion for pandaer, passende navngivet, query. Jeg vil dog i stedet diskutere de andre måder, hvorpå du kan efterligne forespørgsler, filtrering og fletning af dine data. Vi vil præsentere almindelige scenarier eller spørgsmål, som du ville stille til dine data, og i stedet for SQL, vil vi gøre det med Python. I nedenstående afsnit vil jeg skitsere nogle enkle måder at forespørge rækker på til din pandas-dataramme med Python-programmeringssproget.

Flere betingelser

 
 



Eksempeldata. Skærmbillede fra forfatter [2].

 

Som dataforskere eller dataanalytikere ønsker vi at returnere specifikke rækker af data. Et af disse scenarier er, hvor du vil anvende flere betingelser, alle i den samme kodelinje. For at vise mit eksempel har jeg lavet nogle falske eksempeldata af et for- og efternavn samt deres respektive køn og fødselsdato. Disse data vises ovenfor på skærmbilledet.

Eksemplet med flere betingelser vil i det væsentlige besvare et specifikt spørgsmål, ligesom når du bruger SQL. Spørgsmålet er, hvor stor en procentdel af vores data er mandligt køn OR en person, der er født mellem 2010 og 2021.

Her er koden, der vil løse det spørgsmål (der er et par måder at besvare dette spørgsmål på, men her er min specifikke måde at gø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 at visualisere denne kode, har jeg også inkluderet dette skærmbillede af den samme kode fra oven sammen med output/resultat. Du kan også anvende disse betingelser for at returnere de faktiske rækker i stedet for at få brøkdelen eller procenten af ​​rækkerne ud af de samlede rækker.



Betingelseskode. Skærmbillede af forfatter [3].

 

Her er rækkefølgen af ​​kommandoer, vi udførte:

  • Returner rækker med han Gender
  • Medtag OR funktion |
  • Returner rækkerne af Birthdate > 2010 og 2021
  • Kombiner dem alle, og divider derefter med det samlede antal rækker

Som du kan se, ligner denne kode noget, du ville se i SQL. Jeg synes personligt, at det er nemmere i pandaer, fordi det kan være mindre kode, samtidig med at det er i stand til visuelt at se al koden på ét let sted uden at skulle scrolle op og ned (men dette format er bare min præference).

Sammenfletning på flere, specifikke kolonner

 
 



Sammenlagt datarammeresultat. Skærmbillede af forfatter [4].

 

Vi har sikkert set, hvordan man flette dataframes sammen i andre tutorials, så jeg ville tilføje en unik tilgang, som jeg ikke rigtig har set derude, som er at fusionere på flere, specifikke kolonner. I dette scenarie ønsker vi at forbinde to datarammer, hvor to felter er delt mellem dem. Du kan se, at hvis der er endnu flere kolonner, kan denne metode være endnu mere nyttig.

Vi har vores første dataramme, som er df, derefter slår vi vores kolonner sammen på en anden dataramme, df2. Her er den kode for at opnå vores forventede resultat:

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

For bedre at visualisere denne sammenlægning og kode, har jeg præsenteret skærmbilledet nedenfor. Du kan se, hvordan den anden dataramme ser ud nedenfor, med First , Last navne, ligesom de er i den første dataramme, men med en ny kolonne, Numeric. Derefter har vi specifikke kolonner, som vi ønskede at flette på, mens vi returnerede kolonner GenderBirthdate, og den nye Numeric kolonne også. Kolonnerne er en liste over kolonner, som er navngivet cols.



Sammenlægning af dataramme. Skærmbillede af forfatter [5].

 

Som du kan se, er denne måde at flette datarammer på en enkel måde at opnå de samme resultater, som du ville få fra en SQL-forespørgsel.

Resumé

 
 
I denne tutorial så vi to almindelige spørgsmål eller forespørgsler, som du ville udføre i SQL, men i stedet har udført dem med pandas-datarammer i Python.

For at opsummere er her de to scenarier, vi arbejdede med:

  1. Returnerer procentdelen af ​​rækker ud af det samlede datasæt fra flere betingelser
  2. Sammenfletning på flere, specifikke kolonner for at returnere en endelig dataramme med en ny kolonne

Jeg håber, du fandt min artikel både interessant og nyttig. Du er velkommen til at kommentere nedenfor, hvis du er enig eller uenig i disse metoder. Hvorfor eller hvorfor ikke? Disse kan helt sikkert afklares endnu mere, men jeg håber, at jeg var i stand til at kaste lidt lys over nogle af de måder, du kan bruge pandaer og Python i stedet for SQL. Tak fordi du læste!

Du er velkommen til at tjekke min profil, Matt Przybyla, og andre artikler, samt kontakt mig på LinkedIn.

Jeg er ikke tilknyttet disse virksomheder.

 
Referencer

[1] Foto af Bruce Hong on Unsplash, (2018)

[2] M. Przybyla, prøvedataskærmbillede, (2021)

[3] M. Przybyla, skærmbillede af tilstandskode, (2021)

[4] M. Przybyla, skærmbillede af fusioneret datarammeresultat, (2021)

[5] M. Przybyla, skærmbillede af sammenlægning af dataramme, (2021)

 
Bio: Matthew Przybyla er Senior Data Scientist hos Favor Delivery og freelance teknisk skribent, især inden for datavidenskab.

Original. Genopslået med tilladelse.

Relateret:

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

Tidsstempel:

Mere fra KDnuggets