filtered_df = data_df.copy() for filter_category, filter_values in row_filters.items(): filter_mapping = mapping_df[ mapping_df["data_category"] .apply(normalize_for_matching) == normalize_for_matching(filter_category) ] filter_col = filter_mapping["source_column_name"].iloc[0] filtered_df = filtered_df[ filtered_df[filter_col] .apply(normalize_for_matching) .isin(values) ]