Раскройте весь его потенциал

Pandas - широко используемая библиотека для анализа и обработки данных. Он предоставляет множество функций и методов для простого и эффективного выполнения типичных операций.

Типичная задача анализа данных - фильтрация точек данных (или наблюдений). В случае работы с табличными данными точка данных представлена ​​строкой. Иногда нам нужно отфильтровать строку на основе некоторых значений функции (или столбца).

Существует несколько методов Pandas для фильтрации точек данных. В этой статье мы остановимся на одном из этих методов. Это функция запроса.

Давайте сначала импортируем библиотеки и создадим образец фрейма данных.

import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randint(10, size=(5,6)), columns=list("ABCDEF"))
df

Теперь мы можем начать использовать функцию запроса для фильтрации этого фрейма данных.

Пример 1

Функция запроса позволяет применять условия фильтрации в виде строки. Он обеспечивает большую гибкость, чем многие другие методы.

df.query("A > 4")

Мы выбрали строки, в которых значение в столбце A больше 4.

Пример 2

Мы легко можем комбинировать несколько условий.

df.query("A > 4 and E == 5")

Пример 3

Можно также использовать логику «или» для объединения нескольких условий.

df.query("A > 2 or F > 4")

Пример 4

Оператор «not» также может быть реализован как часть фильтра в функции запроса.

df.query("not (A > 2 or F > 4)")

Пример 5

Мы также можем использовать простые математические операции внутри функции запроса.

df.query("A*2 < 5")

Пример 6

Функция запроса позволяет использовать некоторые встроенные функции, которые обеспечивают большую гибкость.

Например, мы можем использовать функцию abs, которая возвращает абсолютное значение числа. Давайте сначала преобразуем значения в столбце F в отрицательные целые числа, а затем напишем запрос, включающий функцию abs.

df.F = -1 * df.F
df.query("abs(F) > 6")

Пример 7

Также можно использовать функцию сортировки (извлечение квадратного корня).

df.query("sqrt(A) > 2")

Пример 8

Логические операторы также могут использоваться для фильтрации строк. Давайте добавим столбец, содержащий строки. Затем мы можем отфильтровать фрейм данных на основе нового столбца.

df["G"] = ["John", "Jane", "Ashley", "Luke", "Michael"]
df.query("G > 'Jo'")

Пример 9

Функция запроса также пригодится при работе с датой и временем. Мы можем реализовать некоторые функции под аксессором dt. Чтобы продемонстрировать эту функциональность, нам понадобится столбец с датой или временем.

df["Date"] = pd.date_range(start="2021-04-05", periods=5, freq="M")
df

Предположим, нам нужно выбрать строки, в которых значение месяца больше 6. Вот как мы можем выполнить эту задачу.

df.query("Date.dt.month > 6")

Пример 10

Мы также можем создать условие для сравнения двух или более столбцов.

df.query("A + B < C")

Заключение

Фильтрация значений - важная часть как при анализе, так и при обработке данных. Нам могут быть интересны значения, соответствующие определенному условию. Точно так же мы могли бы захотеть изучить значения на основе набора фильтров.

Pandas предлагает богатый выбор методов фильтрации фреймов данных. Функция запроса - одна из них, и она может пригодиться во многих случаях.

Спасибо за чтение. Пожалуйста, дайте мне знать, если у вас есть какие-либо отзывы.