Ich benutze diesen Datenrahmen:
Fruit Date Name Number
Apples 10/6/2016 Bob 7
Apples 10/6/2016 Bob 8
Apples 10/6/2016 Mike 9
Apples 10/7/2016 Steve 10
Apples 10/7/2016 Bob 1
Oranges 10/7/2016 Bob 2
Oranges 10/6/2016 Tom 15
Oranges 10/6/2016 Mike 57
Oranges 10/6/2016 Bob 65
Oranges 10/7/2016 Tony 1
Grapes 10/7/2016 Bob 1
Grapes 10/7/2016 Tom 87
Grapes 10/7/2016 Bob 22
Grapes 10/7/2016 Bob 12
Grapes 10/7/2016 Tony 15
Ich möchte dies nach Namen und dann nach Früchten zusammenfassen, um eine Gesamtzahl von Früchten pro Name zu erhalten.
Bob,Apples,16 ( for example )
Ich habe versucht, nach Namen und Früchten zu gruppieren, aber wie erhalte ich die Gesamtzahl der Früchte?
Number
?Sie können auch die Agg-Funktion verwenden,
quelle
Series
während das andere einGroupBy
Objekt zurückgibt .DataFrame
stattdessen Objekt zu erhalten (wie in der akzeptierten Antwort), verwenden Sie doppelte eckige Klammern'Number'
, dh:df.groupby(['Name', 'Fruit'])[['Number']].agg('sum')
Wenn Sie die ursprünglichen Spalten behalten wollen
Fruit
undName
verwendenreset_index()
. AndernfallsFruit
undName
wird Teil des Index.Wie in den anderen Antworten zu sehen:
quelle
Beide anderen Antworten erreichen, was Sie wollen.
Sie können die
pivot
Funktionalität verwenden, um die Daten in einer schönen Tabelle anzuordnenquelle
Sie können verschiedene Spalten auswählen, um Zahlen zu summieren.
quelle
Sie können die
groupby
Spalte so einstellen , dass sieindex
dannsum
mit verwendet wirdlevel
quelle
Eine Variation der .agg () -Funktion; Bietet die Möglichkeit, (1) den Typ DataFrame beizubehalten, (2) Durchschnittswerte, Zählwerte, Summierungen usw. anzuwenden und (3) das Gruppieren in mehreren Spalten zu aktivieren, während die Lesbarkeit erhalten bleibt.
mit deinen Werten ...
quelle