Recipe: How to apply functions in a Group in a Pandas DataFrame?
DATA MUNGING PYTHON PANDAS DATAFRAME PANDAS CHEATSHEET PANDAS DATAFRAME TUTORIAL

How to apply functions in a Group in a Pandas DataFrame?

This recipe helps you apply functions in a Group in a Pandas DataFrame
In [1]:
## How to apply functions in a Group in a Pandas DataFrame
def Kickstarter_Example_69():
    print()
    print(format('How to apply functions in a Group in a Pandas DataFrame','*^82'))

    import warnings
    warnings.filterwarnings("ignore")

    # load libraries
    import pandas as pd

    # Create an example dataframe
    data = {'EmployeeGroup': ['A','A','A','A','A','A','B','B','B','B','B','C','C','C','C','C'],
            'Points': [10,40,50,70,50,50,60,10,40,50,60,70,40,60,40,60]}
    df = pd.DataFrame(data)
    print('\nThe Original DataFrame'); print(df)

    # Apply A Function (Rolling Mean) To The DataFrame, By Group
    print('\nRolling Mean:'); print(df.groupby('EmployeeGroup')['Points'].apply(lambda x:x.rolling(center=False,window=2).mean()))

    # Apply A Function (Mean) To The DataFrame, By Group    
    print('\nAverage:'); print(df.groupby('EmployeeGroup')['Points'].apply(lambda x:x.mean()))

    # Apply A Function (Sum) To The DataFrame, By Group    
    print('\nSum:'); print(df.groupby('EmployeeGroup')['Points'].apply(lambda x:x.sum()))

    # Apply A Function (Max) To The DataFrame, By Group    
    print('\nMaximum:'); print(df.groupby('EmployeeGroup')['Points'].apply(lambda x:x.max()))

    # Apply A Function (Min) To The DataFrame, By Group    
    print('\nMinimum:'); print(df.groupby('EmployeeGroup')['Points'].apply(lambda x:x.min()))

Kickstarter_Example_69()
*************How to apply functions in a Group in a Pandas DataFrame**************

The Original DataFrame
   EmployeeGroup  Points
0              A      10
1              A      40
2              A      50
3              A      70
4              A      50
5              A      50
6              B      60
7              B      10
8              B      40
9              B      50
10             B      60
11             C      70
12             C      40
13             C      60
14             C      40
15             C      60

Rolling Mean:
0      NaN
1     25.0
2     45.0
3     60.0
4     60.0
5     50.0
6      NaN
7     35.0
8     25.0
9     45.0
10    55.0
11     NaN
12    55.0
13    50.0
14    50.0
15    50.0
Name: Points, dtype: float64

Average:
EmployeeGroup
A    45.0
B    44.0
C    54.0
Name: Points, dtype: float64

Sum:
EmployeeGroup
A    270
B    220
C    270
Name: Points, dtype: int64

Maximum:
EmployeeGroup
A    70
B    60
C    70
Name: Points, dtype: int64

Minimum:
EmployeeGroup
A    10
B    10
C    40
Name: Points, dtype: int64


Stuck at work?
Can't find the recipe you are looking for. Let us know and we will find an expert to create the recipe for you. Click here
Companies using this Recipe
1 developer from Infosys
1 developer from Scotiabank
1 developer from Altimetrik
1 developer from KPMG
1 developer from Vodafone
1 developer from ANAC
1 developer from LTI
1 developer from YASH Technologies
1 developer from HvH
1 developer from Renovite Technologies