I am using this data frame:
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  I want to aggregate this by Name and then by fruit to get a total number of Fruit per Name. For example:
Bob,Apples,16  I tried grouping by Name and Fruit but how do I get the total number of Fruit?
Use DataFrame. groupby(). sum() to group rows based on one or multiple columns and calculate sum agg function. groupby() function returns a DataFrameGroupBy object which contains an aggregate function sum() to calculate a sum of a given column for each group.
Pandas comes with a whole host of sql-like aggregation functions you can apply when grouping on one or more columns.
Use GroupBy.sum:
df.groupby(['Fruit','Name']).sum()  Out[31]:                 Number Fruit   Name          Apples  Bob        16         Mike        9         Steve      10 Grapes  Bob        35         Tom        87         Tony       15 Oranges Bob        67         Mike       57         Tom        15         Tony        1 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With