Drei Pandas-Methoden, die Sie vielleicht nicht kennen

Der Autor des Artikels, dessen Übersetzung wir heute veröffentlichen, sagt, als er von den Methoden der Pandas-Bibliothek erfuhr, über die er hier sprechen möchte, fühlte er sich wie ein völlig inkompetenter Programmierer. Warum? Tatsache ist, dass er, als er den Code schrieb, zu faul war, in die Suchmaschine zu schauen und herauszufinden, ob es effektive Möglichkeiten gab, einige Probleme zu lösen. Infolgedessen wusste er nicht einmal, dass es eine Reihe sehr nützlicher Pandas-Methoden gibt. Ohne diese Methoden umzusetzen, war er in der Lage, die notwendige Logik zu implementieren, aber dies erforderte mehrere Stunden Arbeit, was ihn nervös machte. Und natürlich schrieb er auf dem Weg eine Menge unnötigen Codes. Er hat diesen Artikel für diejenigen vorbereitet, die nicht in seiner Situation sein wollen.



Methoden Idxmin () und idxmax ()


Ich habe bereits über die idxmin() und idxmax() , aber wenn ich hier nicht darüber idxmax() , ist es für Sie nicht einfach zu verstehen, worüber wir später sprechen werden.

Wenn Sie diese Methoden auf den Punkt bringen, geben Sie den Index (Zeigerposition) für den gewünschten Datensatz zurück. Angenommen, ich habe das folgende Series Pandas-Objekt erstellt.

  x = pd.Series ([ 1, 3, 2, 8, 124, 4, 2, 1 ]) 

Ich muss den Index des minimalen und maximalen Elements finden. Natürlich ist es nicht schwierig, das anhand der Beschreibung des Objekts herauszufinden, aber in realen Projekten treffen Datensätze, die aus einer so geringen Anzahl von Elementen bestehen, niemals (genau so - „nie“) auf keinen Fall.

Was zu tun ist? Verwenden Sie die idxmin() und idxmax() . So sieht es aus:



Bei Verwendung dieser Methoden dürfen Sie nicht vergessen, dass sie den Index des ersten Auftretens des minimalen oder maximalen Werts zurückgeben.

Ne () Methode


Die ne() -Methode war für mich eine große Entdeckung. Vor einiger Zeit habe ich mit Datenzeitreihen gearbeitet und bin auf ein Problem gestoßen, als die ersten n Beobachtungen 0 waren.

Stellen Sie sich vor, Sie haben etwas gekauft, es aber für einen bestimmten Zeitraum nicht konsumiert. Was Sie gekauft haben, steht zu Ihrer Verfügung, aber da Sie es nicht verwenden, beträgt der Verbrauch zu einem bestimmten Zeitpunkt 0. Da ich an den Verbrauchsdaten interessiert war, die erhalten wurden, als die tatsächliche Nutzung dessen, was begonnen hat, stattfand. “ gekauft “, stellte sich heraus, dass die ne() -Methode genau das war, was ich brauchte.

Stellen Sie sich das folgende Szenario vor. Wir haben ein Pandas DataFrame Objekt, das die Ergebnisse einiger Beobachtungen enthält, die oben in der Liste durch Werte von 0 dargestellt werden.
 df = pd.DataFrame() 



Die ne() -Methode gibt nur dann True , wenn der aktuelle Wert nicht derjenige ist, der beim Aufruf dieser Methode angegeben wurde (beispielsweise kann beim Aufruf der Wert 0 angegeben werden), andernfalls wird False :
 df['X'].ne(0) 


Diese Methode allein kann nicht als besonders nützlich bezeichnet werden. idxmax() Sie jetzt daran, wie ich am Anfang des Artikels sagte, dass Sie sich mit der idxmax() -Methode vertraut machen müssen, um den Artikel zu verstehen. Ich habe damals nicht gescherzt. Sie können den idxmax() an den obigen ne() idxmax() anhängen. Das Ergebnis ist folgendes:
 df['X'].ne(0).idxmax() 


Dies zeigt uns, dass sich das erste Beobachtungsergebnis ungleich Null auf Position 6 befindet. Auch dies scheint kein so wichtiger Fund zu sein. Das Wichtigste hierbei ist jedoch, dass diese Informationen verwendet werden können, um eine Teilmenge des DataFrame Objekts auszuwählen und nur die Werte anzuzeigen, die ab der erkannten Position angezeigt werden:
 df.loc[df['X'].ne(0).idxmax():] 


Diese Technik ist in vielen Situationen sehr nützlich, in denen Sie mit Zeitreihendaten arbeiten müssen.

Nsmallest () und nlargest () Methoden


Ich vermute, dass Sie den Zweck dieser Methoden erst erraten können, wenn Sie die Namen dieser Methoden gesehen haben. Angenommen, ich habe den folgenden DataFrame :
 df = pd/DataFrame({ 'Name': ['Bob', 'Mark', 'Steph', 'Jess', 'Becky'], 'Points': [55, 98, 46, 77, 81] }) 


Um es interessanter zu machen, nehmen wir an, dass hier die Ergebnisse eines Tests sind, den einige Schüler bestanden haben. Wir wollen drei Studenten finden, die mit dem Test am schlechtesten abschneiden:
 df.nsmallest(3, 'Points') 


Oder - finde heraus, wer unter den ersten drei ist:
 df.nlargest(3, 'Points') 


Diese Methoden sind sehr gute Substitute für Methoden wie sort_values() .

Zusammenfassung


Hier haben wir uns einige nützliche Pandas-Methoden angeschaut. Für diejenigen, die über sie Bescheid wissen, mag ihre Anwendung völlig natürlich erscheinen, aber für diejenigen, die sie gerade erst kennengelernt haben, mögen sie wie ein echter Fund aussehen. Wir hoffen, dass sie Ihnen gut dienen.

Sehr geehrte Leser! Kennen Sie einige nützliche Pandas-Methoden, die andere möglicherweise nicht kennen?


Source: https://habr.com/ru/post/de479276/


All Articles