Фильтрация с groupby
необходима, когда условие выбора относится к какому-либо свойству всей группы , например, к среднему значению некоторого столбца (в текущей группе)> some_value .
Но в вашем случае критерий выбора относится к одному столбцу в текущей записи (не в группе), поэтому группировка не требуется.Вместо этого используйте query
, например:
fareData.query("payment_type != 'UNK'")
Редактировать
Если по какой-то причине вы все еще хотите использовать группировку, обратите внимание, что в этом случае фильтрация выполняется по ключу группировки (payment_type
), то есть то же самое в каждой строке текущей группы.
Таким образом, условие фильтрации может проверять интересующее значение только в первой строке текущая группа:
paymentGroups.filter(lambda x: x['payment_type'].iloc[0] != 'UNK')