Hoe innovatie in technologie de app-ontwikkelingssector machtigt? 1

Hoe u uw Panda's-dataframe kunt opvragen

Bronknooppunt: 1017694

Hoe u uw Panda's-dataframe kunt opvragen

Het perspectief van een datawetenschapper op SQL-achtige Python-functies.


By Matthew Przybyla, Senior Data Scientist bij Favor Delivery



Foto door Bruce Hong on Unsplash [1].

Inhoudsopgave

 
 

  1. Introductie
  2. Meerdere voorwaarden
  3. Samenvoegen op meerdere, specifieke kolommen
  4. Samengevat
  5. Referenties

Introductie

 
 
Of u nu de overstap maakt van een data-ingenieur/data-analist of een efficiëntere datawetenschapper wilt worden, het bevragen van uw dataframe kan een behoorlijk nuttige methode blijken te zijn om specifieke rijen te retourneren die u zoekt. Het is belangrijk op te merken dat er een specifieke zoekfunctie voor panda's is, met de toepasselijke naam: query. In plaats daarvan zal ik echter de andere manieren bespreken waarop u het opvragen, filteren en samenvoegen van uw gegevens kunt nabootsen. We zullen veelvoorkomende scenario's of vragen presenteren die u aan uw gegevens zou stellen, en in plaats van SQL doen we dit met Python. In de onderstaande paragrafen zal ik enkele eenvoudige manieren schetsen om rijen voor uw panda's-dataframe op te vragen met de programmeertaal Python.

Meerdere voorwaarden

 
 



Voorbeeldgegevens. Screenshot van auteur [2].

 

Als datawetenschappers of data-analisten willen we specifieke rijen met gegevens retourneren. In een van deze scenario's wilt u meerdere voorwaarden toepassen, allemaal in dezelfde coderegel. Om mijn voorbeeld weer te geven, heb ik een aantal valse voorbeeldgegevens gemaakt van een voor- en achternaam, evenals hun respectieve geslacht en geboortedatum. Deze gegevens worden hierboven in de schermafbeelding weergegeven.

Het voorbeeld met meerdere voorwaarden beantwoordt in essentie een specifieke vraag, net zoals wanneer u SQL gebruikt. De vraag is hoeveel procent van onze gegevens mannelijk geslacht is OR een persoon die geboren is tussen 2010 en 2021.

Hier is de code die die vraag zal oplossen (Er zijn een paar manieren om deze vraag te beantwoorden, maar hier is mijn specifieke manier om het te doen):

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

Om deze code beter te visualiseren, heb ik ook deze schermafbeelding van diezelfde code van bovenaf toegevoegd, samen met de uitvoer/het resultaat. U kunt deze voorwaarden ook toepassen om de daadwerkelijke rijen te retourneren in plaats van de fractie of het percentage rijen uit het totaalaantal rijen te halen.



Voorwaardencode. Screenshot van auteur [3].

 

Hier is de volgorde van de opdrachten die we hebben uitgevoerd:

  • Retour rijen met Male Gender
  • Voeg de OR functie |
  • Retourneer de rijen van Birthdate > 2010 en 2021
  • Combineer deze allemaal en deel vervolgens door het totale aantal rijen

Zoals u kunt zien, is deze code vergelijkbaar met iets dat u in SQL zou zien. Ik denk persoonlijk dat het gemakkelijker is bij panda's omdat het minder code kan zijn, terwijl je ook alle code visueel op één gemakkelijke plek kunt zien, zonder op en neer te hoeven scrollen (maar dit formaat heeft gewoon mijn voorkeur).

Samenvoegen op meerdere, specifieke kolommen

 
 



Samengevoegd dataframeresultaat. Screenshot van auteur [4].

 

We hebben waarschijnlijk in andere tutorials gezien hoe we dataframes kunnen samenvoegen, dus ik wilde een unieke aanpak toevoegen die ik nog niet echt heb gezien, namelijk het samenvoegen van meerdere, specifieke kolommen. In dit scenario willen we twee dataframes samenvoegen waarbij twee velden onderling worden gedeeld. Je zou kunnen zien dat deze methode nog nuttiger zou kunnen zijn als er nog meer kolommen zijn.

We hebben ons eerste dataframe, dat is df, en daarna voegen we onze kolommen samen in een tweede dataframe, df2. Hier is die code om ons verwachte resultaat te bereiken:

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

Om deze samenvoeging en code beter te visualiseren, heb ik de onderstaande schermafbeelding gepresenteerd. Hieronder ziet u hoe het tweede dataframe eruit ziet, met de First en Last namen, net zoals ze in het eerste dataframe staan, maar met een nieuwe kolom, Numeric. Vervolgens hebben we specifieke kolommen gevonden die we wilden samenvoegen, terwijl we kolommen retourneerden GenderBirthdateen het nieuwe Numeric kolom ook. De kolommen zijn een lijst met kolommen met een naam cols.



Dataframe samenvoegen. Screenshot van auteur [5].

 

Zoals u kunt zien, is deze manier om dataframes samen te voegen een eenvoudige manier om dezelfde resultaten te bereiken als bij een SQL-query.

Samengevat

 
 
In deze zelfstudie hebben we twee veelvoorkomende vragen of query's gezien die u in SQL zou uitvoeren, maar deze in plaats daarvan met Panda-dataframes in Python hebt uitgevoerd.

Samenvattend zijn dit de twee scenario’s waarmee we hebben gewerkt:

  1. Retourneert het percentage rijen uit de totale gegevensset uit meerdere voorwaarden
  2. Samenvoegen van meerdere, specifieke kolommen om een ​​definitief dataframe met een nieuwe kolom te retourneren

Ik hoop dat je mijn artikel zowel interessant als nuttig vond. Voel je vrij om hieronder te reageren als je het eens of oneens bent met deze methoden. Waarom of waarom niet? Deze kunnen zeker nog verder worden verduidelijkt, maar ik hoop dat ik enig licht heb kunnen werpen op enkele manieren waarop je panda's en Python kunt gebruiken in plaats van SQL. Bedankt voor het lezen!

Neem gerust een kijkje op mijn profiel, Matt Przybylaen andere artikelen, en neem contact met mij op via LinkedIn.

Ik ben niet aangesloten bij deze bedrijven.

 
Referenties

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

[2] M. Przybyla, screenshot van voorbeeldgegevens, (2021)

[3] M. Przybyla, screenshot van de voorwaardencode, (2021)

[4] M. Przybyla, screenshot van samengevoegd dataframe-resultaat, (2021)

[5] M. Przybyla, dataframe-screenshot samenvoegen, (2021)

 
Bio: Matthew Przybyla is Senior Data Scientist bij Favor Delivery en freelance technisch schrijver, vooral in data science.

ORIGINELE. Met toestemming opnieuw gepost.

Zie ook:

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

Tijdstempel:

Meer van KDnuggets