pythonintermediate

Pandas Custom Aggregation Functions

Pass custom lambda and named functions to .agg() for complex groupby aggregations.

python
import pandas as pd

df = pd.DataFrame({'dept':['eng','eng','hr','hr','eng'],'salary':[90000,85000,60000,65000,95000],'yoe':[3,5,2,7,8]})

def iqr(s):
    return s.quantile(0.75) - s.quantile(0.25)

result = df.groupby('dept').agg(
    avg_salary=('salary','mean'),
    max_salary=('salary','max'),
    salary_iqr=('salary', iqr),
    avg_yoe=('yoe','mean'),
    headcount=('salary','count'),
)
print(result)

Use Cases

  • HR analytics
  • financial reporting
  • cohort analysis

Tags

Related Snippets

Similar patterns you can reuse in the same workflow.