How to group rows in a Pandas DataFrame?
0

How to group rows in a Pandas DataFrame?

This recipe helps you group rows in a Pandas DataFrame
In [1]:
## How to group rows in a Pandas DataFrame
def Kickstarter_Example_89():
    print()
    print(format('How to group rows in a Pandas DataFrame','*^82'))

    import warnings
    warnings.filterwarnings("ignore")

    # load libraries
    import pandas as pd

    # Create a dataframe
    raw_data = {'regiment': ['Nighthawks', 'Nighthawks', 'Nighthawks', 'Nighthawks', 'Dragoons', 'Dragoons', 'Dragoons', 'Dragoons', 'Scouts', 'Scouts', 'Scouts', 'Scouts'],
                'company': ['1st', '1st', '2nd', '2nd', '1st', '1st', '2nd', '2nd','1st', '1st', '2nd', '2nd'],
                'name': ['Miller', 'Jacobson', 'Ali', 'Milner', 'Cooze', 'Jacon', 'Ryaner', 'Sone', 'Sloan', 'Piger', 'Riani', 'Ali'],
                'preTestScore': [4, 24, 31, 2, 3, 4, 24, 31, 2, 3, 2, 3],
                'postTestScore': [25, 94, 57, 62, 70, 25, 94, 57, 62, 70, 62, 70]}
    df = pd.DataFrame(raw_data, columns = ['regiment', 'company', 'name', 'preTestScore', 'postTestScore'])
    print(); print(df)

    # Create a grouping object. In other words, create an object that
    # represents that particular grouping. 
    regiment_preScore = df['preTestScore'].groupby(df['regiment'])

    # Display the values of the each regiment's pre-test score
    print(); print(regiment_preScore.mean())
    print(); print(regiment_preScore.sum())
    print(); print(regiment_preScore.max())
    print(); print(regiment_preScore.min())
    print(); print(regiment_preScore.count())

Kickstarter_Example_89()
*********************How to group rows in a Pandas DataFrame**********************

      regiment company      name  preTestScore  postTestScore
0   Nighthawks     1st    Miller             4             25
1   Nighthawks     1st  Jacobson            24             94
2   Nighthawks     2nd       Ali            31             57
3   Nighthawks     2nd    Milner             2             62
4     Dragoons     1st     Cooze             3             70
5     Dragoons     1st     Jacon             4             25
6     Dragoons     2nd    Ryaner            24             94
7     Dragoons     2nd      Sone            31             57
8       Scouts     1st     Sloan             2             62
9       Scouts     1st     Piger             3             70
10      Scouts     2nd     Riani             2             62
11      Scouts     2nd       Ali             3             70

regiment
Dragoons      15.50
Nighthawks    15.25
Scouts         2.50
Name: preTestScore, dtype: float64

regiment
Dragoons      62
Nighthawks    61
Scouts        10
Name: preTestScore, dtype: int64

regiment
Dragoons      31
Nighthawks    31
Scouts         3
Name: preTestScore, dtype: int64

regiment
Dragoons      3
Nighthawks    2
Scouts        2
Name: preTestScore, dtype: int64

regiment
Dragoons      4
Nighthawks    4
Scouts        4
Name: preTestScore, dtype: int64