Comment Comment by __mharrison__ I misspoke, you need to use .groupby/.transform to add a new filtering column: (sales .assign(country_median=lambda df_: ( df_.groupby("country")["amount"].transform("median") )) .query("amount <= country_median * 10") .assign(net=pd.col('amount') - pd.col('discount')) .groupby("country", as_index=False) .agg(total=("net", "sum")) ) parent __mharrison__ 1 month ago