( purchases.loc[ lambda x: x["amount"] < 10 * x.groupby("country")["amount"].transform("median") ] .assign(total=lambda df: df["amount"] - df["discount"]) .groupby("country")["total"] .sum() .reset_index() # to produce a DataFrame result )