Code
pandas
import pandas as pd
df = pd.DataFrame({
"dept": ["eng", "eng", "sales", "sales", "hr"],
"salary": [90, 110, 70, 80, 60],
"years": [3, 5, 2, 4, 1],
})
# Single aggregation
print(df.groupby("dept")["salary"].mean())
# Multiple aggregations
agg = df.groupby("dept").agg(
avg_salary=("salary", "mean"),
max_salary=("salary", "max"),
headcount=("salary", "size"),
)
print(agg)
# Transform keeps the original shape
df["dept_avg"] = df.groupby("dept")["salary"].transform("mean")
# Filter groups
big = df.groupby("dept").filter(lambda g: g["salary"].sum() > 100)