Для более общих логических функций, которые вы хотели бы использовать в качестве фильтра и которые зависят от более чем одного столбца, вы можете использовать:
df = df[df[['col_1','col_2']].apply(lambda x: f(*x), axis=1)]
, где f - это функция, применяемая к каждому пара элементов (x1, x2) из col_1 и col_2 и возвращает True или False в зависимости от любого условия, в котором вы хотите (x1, x2).