Es ist ziemlich üblich, boolesche Indizierung für diese Art von Aufgabe zu verwenden. Mit dieser Methode finden Sie heraus, wo die Spalte a
gleich 1
ist und dann die entsprechenden Zeilen der Spalte b
summieren. Sie können loc
verwenden, um die Indizierung zu handhaben:
>>> df.loc[df['a'] == 1, 'b'].sum()
15
Der alternative Ansatz ist groupby
zu verwenden, um den Datenrahmen in Teile entsprechend dem Wert in Spalte a
aufzuspalten. Sie können dann die einzelnen Teile summieren und den Wert herausziehen, dass die 1'en aufsummiert:
>>> df.groupby('a')['b'].sum()[1]
15
Der groupby
Ansatz ist viel langsamer als boolean Indizierung, aber ist nützlich, wenn Sie die Summen für andere Werte in Spalte überprüfen möchten a
.
Verwenden Sie Gruppe nach Funktion in Pandas, um diese Aufgabe zu erledigen –