Wie stärkt technische Innovation den App-Entwicklungssektor? 1

So fragen Sie Ihren Pandas-Datenrahmen ab

Quellknoten: 1017694

So fragen Sie Ihren Pandas-Datenrahmen ab

Die Sicht eines Datenwissenschaftlers auf SQL-ähnliche Python-Funktionen.


By Matthäus Przybyla, Senior Data Scientist bei Favor Delivery



Photo by Bruce Hong on Unsplash [1].

Inhaltsverzeichnis

 
 

  1. Einleitung
  2. Mehrere Bedingungen
  3. Zusammenführen in mehreren, spezifischen Spalten
  4. Zusammenfassung
  5. Bibliographie

Einleitung

 
 
Unabhängig davon, ob Sie von einem Dateningenieur/Datenanalysten wechseln oder ein effizienterer Datenwissenschaftler werden möchten, kann sich die Abfrage Ihres Datenrahmens als äußerst nützliche Methode zur Rückgabe bestimmter gewünschter Zeilen erweisen. Es ist wichtig zu beachten, dass es für Pandas eine spezielle Abfragefunktion mit dem entsprechenden Namen gibt: query. Stattdessen werde ich jedoch die anderen Möglichkeiten besprechen, mit denen Sie das Abfragen, Filtern und Zusammenführen Ihrer Daten nachahmen können. Wir stellen häufige Szenarien oder Fragen vor, die Sie zu Ihren Daten stellen würden, und statt SQL werden wir dies mit Python tun. In den folgenden Absätzen werde ich einige einfache Möglichkeiten zum Abfragen von Zeilen für Ihren Pandas-Datenrahmen mit der Programmiersprache Python skizzieren.

Mehrere Bedingungen

 
 



Beispieldaten. Screenshot vom Autor [2].

 

Als Datenwissenschaftler oder Datenanalysten möchten wir bestimmte Datenzeilen zurückgeben. In einem dieser Szenarios möchten Sie mehrere Bedingungen anwenden, alle in derselben Codezeile. Um mein Beispiel darzustellen, habe ich einige gefälschte Beispieldaten eines Vor- und Nachnamens sowie des jeweiligen Geschlechts und Geburtsdatums erstellt. Diese Daten werden oben im Screenshot angezeigt.

Die Beispiel-Mehrfachbedingungen beantworten im Wesentlichen eine bestimmte Frage, genau wie bei der Verwendung von SQL. Die Frage ist, wie viel Prozent unserer Daten sind männlich OR eine Person, die zwischen 2010 und 2021 geboren wurde.

Hier ist der Code, der diese Frage löst (Es gibt mehrere Möglichkeiten, diese Frage zu beantworten, aber hier ist meine konkrete Vorgehensweise):

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

Um diesen Code besser zu veranschaulichen, habe ich zusammen mit der Ausgabe/dem Ergebnis auch diesen Screenshot desselben Codes von oben eingefügt. Sie können diese Bedingungen auch anwenden, um die tatsächlichen Zeilen zurückzugeben, anstatt den Bruchteil oder Prozentsatz der Zeilen aus der Gesamtzahl der Zeilen abzurufen.



Bedingungscode. Screenshot des Autors [3].

 

Hier ist die Reihenfolge der von uns ausgeführten Befehle:

  • Zeilen mit Male zurückgeben Gender
  • Umfassen die OR Funktion |
  • Geben Sie die Zeilen von zurück Birthdate > 2010 und 2021
  • Kombinieren Sie diese alle und dividieren Sie sie dann durch die Gesamtzahl der Zeilen

Wie Sie sehen, ähnelt dieser Code etwas, das Sie in SQL sehen würden. Ich persönlich denke, dass es in Pandas einfacher ist, weil es weniger Code enthalten kann und gleichzeitig der gesamte Code an einer einfachen Stelle visuell angezeigt werden kann, ohne nach oben und unten scrollen zu müssen (aber dieses Format ist nur meine Präferenz).

Zusammenführen in mehreren, spezifischen Spalten

 
 



Ergebnis des zusammengeführten Datenrahmens. Screenshot des Autors [4].

 

Wir haben wahrscheinlich in anderen Tutorials gesehen, wie man Datenrahmen zusammenführt, daher wollte ich einen einzigartigen Ansatz hinzufügen, den ich noch nicht wirklich gesehen habe, nämlich das Zusammenführen mehrerer, spezifischer Spalten. In diesem Szenario möchten wir zwei Datenrahmen verbinden, in denen zwei Felder gemeinsam genutzt werden. Man merkt, dass diese Methode noch nützlicher sein könnte, wenn es noch mehr Spalten gibt.

Wir haben unseren ersten Datenrahmen, df, dann führen wir unsere Spalten in einem zweiten Datenrahmen, df2, zusammen. Hier ist der Code, um unser erwartetes Ergebnis zu erzielen:

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

Um diese Zusammenführung und den Code besser zu veranschaulichen, habe ich den Screenshot unten präsentiert. Unten sehen Sie, wie der zweite Datenrahmen aussieht First und Last Namen, genau wie im ersten Datenrahmen, aber mit einer neuen Spalte, Numeric. Dann haben wir bestimmte Spalten herausgefunden, die wir zusammenführen wollten, und haben gleichzeitig Spalten zurückgegeben GenderBirthdate und Numeric Spalte auch. Bei den Spalten handelt es sich um eine Liste von Spalten, die benannt wird cols.



Datenrahmen zusammenführen. Screenshot des Autors [5].

 

Wie Sie sehen, ist diese Art der Datenrahmenzusammenführung eine einfache Möglichkeit, die gleichen Ergebnisse zu erzielen, die Sie mit einer SQL-Abfrage erhalten würden.

Zusammenfassung

 
 
In diesem Tutorial haben wir zwei häufige Fragen oder Abfragen gesehen, die Sie in SQL ausführen würden, diese aber stattdessen mit Pandas-Datenrahmen in Python ausgeführt haben.

Zusammenfassend sind hier die beiden Szenarien, mit denen wir gearbeitet haben:

  1. Gibt den Prozentsatz der Zeilen am Gesamtdatensatz aus mehreren Bedingungen zurück
  2. Zusammenführen mehrerer spezifischer Spalten, um einen endgültigen Datenrahmen mit einer neuen Spalte zurückzugeben

Ich hoffe, Sie fanden meinen Artikel sowohl interessant als auch nützlich. Bitte hinterlassen Sie unten einen Kommentar, wenn Sie diesen Methoden zustimmen oder nicht. Warum oder warum nicht? Diese lassen sich sicherlich noch weiter klären, aber ich hoffe, ich konnte ein wenig Licht auf einige Möglichkeiten werfen, wie man Pandas und Python anstelle von SQL verwenden kann. Vielen Dank fürs Lesen!

Schauen Sie sich gerne mein Profil an, Matt Przybyla, und andere Artikel, und kontaktieren Sie mich auch auf LinkedIn.

Ich bin mit diesen Unternehmen nicht verbunden.

 
Bibliographie

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

[2] M. Przybyla, Beispieldaten-Screenshot, (2021)

[3] M. Przybyla, Screenshot des Bedingungscodes, (2021)

[4] M. Przybyla, Screenshot des Ergebnisses des zusammengeführten Datenrahmens, (2021)

[5] M. Przybyla, Screenshot zum Zusammenführen von Datenrahmen, (2021)

 
Bio: Matthäus Przybyla ist Senior Data Scientist bei Favor Delivery und freiberuflicher technischer Redakteur, insbesondere im Bereich Datenwissenschaft.

Original. Mit Genehmigung erneut veröffentlicht.

Related:

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

Zeitstempel:

Mehr von KDnuggets