Wie summiere ich Werte in einer Spalte, die einer bestimmten Bedingung mit Pandas entsprechen?
Angenommen ich habe eine Spalte in etwa so:
a b
1 5
1 7
2 3
1 3
2 5
Möchte ich die Summe der Werte für b
wo a = 1
zum Beispiel. Dies würde mir 5 + 7 + 3 = 15
.
Wie mache ich das in pandas?
Kommentar zu dem Problem - Öffnen
verwenden Sie group by Funktion in der pandas, um diese Aufgabe
InformationsquelleAutor der Frage adijo | 2015-01-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es durchaus üblich, zu verwenden Boolesche Indexierung für diese Art von Aufgabe. Mit dieser Methode finden Sie heraus, wo Spalte
a
gleich1
und dann die Summe der entsprechenden Zeilen der Spalteb
. Sie könnenloc
zu behandeln, die Indizierung:Der alternative Ansatz ist die Verwendung
groupby
Spaltung des dataframe in teilen entsprechend der Wert in der Spaltea
. Sie können dann die Summe jedes Teil an und ziehen Sie den Wert, der 1 ist oben Hinzugefügt:Den
groupby
Ansatz ist sehr viel langsamer als Boolesche Indexierung, aber ist nützlich, wenn Sie wollen, überprüfen Sie die Summen für die anderen Werte in Spaltea
.InformationsquelleAutor der Antwort Alex Riley