Фильтры Pandas: функция DataFrame.filter()

Pandas Dataframe.filter() — это встроенная функция, которая фильтрует, возвращает подмножество столбцов или строк DataFrame в соответствии с метками в конкретном индексе. Следует отметить, что эта процедура не фильтрует DataFrame по его содержимому. Функция filter() применяется к меткам индекса.

Как фильтровать фрейм данных Pandas

Python Pandas позволяет нам нарезать данные несколькими способами. Часто вам может понадобиться подмножество фрейма данных pandas на основе одного или нескольких значений определенного столбца. Обязательно мы хотели бы выбрать строки на основе одного значения или нескольких значений, присутствующих в столбце.

Для фильтрации данных в Pandas у нас есть следующие параметры.

  1. Метод Pandas filter().
  2. Функция Pandas query().
  3. Индексы Pandas DataFrame.

Использование метода DataFrame.filter()

Синтаксис

Параметры

  • items: в виде списка

Сохраняйте метки от оси, которые находятся в элементах.

  • like: str

Сохраняйте метки от оси, для которой «like in label == True».

  • regex: str(регулярное выражение)

Сохраняйте метки от оси, для которой re.search(regex, label) == True.

  • axis: {0 или «index», 1 или «columns», «None}», значение по умолчанию — «None».

Ось для фильтрации, выраженная индексом(int) или именем оси(str).

По умолчанию это информационная ось, «index» для серии, «columns» для DataFrame.

Пример функции Pandas filter()

Пример

Давайте использовать внешний файл CSV для этого примера. Файл, который я использую, называется файлом People.csv, и мы будем импортировать данные с помощью функции pandas read_csv(). Затем мы создадим DataFrame из данных CSV.

В этом примере мы выбираем только первые 10 строк, поэтому я использовал функцию DataFrame.head(), чтобы ограничить количество строк до 10.

Затем мы будем использовать функцию filter() для выбора данных на основе меток.

См. приведенный ниже код.

Выход:

Вы можете видеть, что у нас всего 5 столбцов и 10 строк.

Теперь мы выберем только Name, Height и Weight, используя метод Pandas filter().

Выход:

Фильтр Pandas с регулярным выражением Python

Давайте передадим параметр регулярного выражения в функцию filter(). Python RegEx или регулярное выражение — это последовательность символов, формирующая шаблон поиска. Python RegEx можно использовать для проверки того, содержит ли строка указанный шаблон поиска.

Выберем столбцы по имени, которые содержат «A».

Выход:

Регулярное выражение «[A]» ищет все имена столбцов, в которых есть «A».

У нас есть только один столбец, содержащий A; вот почему он возвращает столбец Age.

Выбор строк в DataFrame, используя filter()

Давайте выберем данные на основе индекса DataFrame.

В приведенном выше коде мы выбираем строку с индексом 6.

В Pandas DataFrame индекс начинается с 0. Таким образом, 6 должен быть 7-м индексом в DataFrame.

Фильтрация в Pandas с df.query()

filter() — не единственная функция, которую мы можем использовать для фильтрации строк и столбцов.

Pandas DataFrame.query() — это встроенная функция, полезная для фильтрации строк.

См. следующий код.

Выход:

В приведенном выше примере мы фильтруем строки с  Age > 40 и получаем всех людей, чей возраст больше 40.

Это похоже на запрос SQL SELECT с предложением WHERE.

Фильтрация несколько столбцов в Pandas DataFrame

Мы можем фильтровать несколько столбцов в Pandas DataFrame с помощью оператора &, не забудьте свернуть подоператоры with().

См. следующий код.

Выход:

В приведенном выше коде мы фильтруем данные на основе двух условий.

  1. Age > 40
  2. Sex == М

Если один из них имеет значение False, он отфильтровывает эти данные.

Возвращаемые данные будут удовлетворять нашим условиям.

Заключение

Мы можем фильтровать Pandas DataFrame, используя методы индексов df.filter(), df.query() и df[].

Мы также можем фильтровать несколько столбцов с помощью оператора &.

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python