def weighted_median(df, median_col, weight_col): df_sorted = df.sort_values(median_col) cumsum = df_sorted[weight_col].cumsum() cutoff = df_sorted[weight_col].sum()/2 return df_sorted[cumsum >= cutoff][median_col].iloc[0]
def weighted_median(df, median_col, weight_col): df_sorted = df.sort_values(median_col) cumsum = df_sorted[weight_col].cumsum() cutoff = df_sorted[weight_col].sum()/2 return df_sorted[cumsum >= cutoff][median_col].iloc[0]