Пропустить до содержимого

Простой гид по использованию переменных в запросах в pandas

[

Введение

В этом уроке мы рассмотрим одну из самых мощных функций библиотеки pandas - query(). Функция query() используется для фильтрации данных в DataFrame по определенным условиям. Возможность использования переменных внутри запросов делает эту функцию особенно гибкой. В этом уроке мы разберем подробности использования запросов с переменными.

Резюме

В этом уроке мы изучим, как использовать переменные в запросах с помощью функции query() библиотеки pandas, чтобы фильтровать данные в DataFrame. Мы покажем, как определить переменные, как использовать их внутри запросов и как применить условия фильтрации.

1. Установка и импорт библиотеки pandas

Перед тем, как начать использовать query() с переменными, вам потребуется установить библиотеку pandas. Для этого можно выполнить следующую команду в командной строке:

pip install pandas

После установки вы можете импортировать библиотеку с помощью следующей строки кода:

import pandas as pd

2. Создание DataFrame

Прежде чем мы начнем работу с запросами и переменными, нам нужно создать DataFrame, на котором мы будем проводить наши эксперименты. Для этого мы можем воспользоваться функцией pd.DataFrame() и передать ей словарь или список:

data = {'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'city': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)

3. Определение переменных

Чтобы использовать переменные в запросах, мы должны сначала определить их. Для этого мы можем создать словарь с переменными и их значениями.

variables = {'age_threshold': 30,
'city_name': 'London'}

4. Применение запроса с переменными

Теперь мы можем использовать определенные переменные внутри запросов с помощью функции query(). Для этого мы просто передаем имя переменной, заключенное в символы @{}. Например, мы можем выполнить следующий запрос:

result = df.query("age > @{age_threshold}")

Этот запрос отфильтрует строки, где значение столбца "age" больше значения переменной "age_threshold".

5. Использование нескольких переменных

Кроме того, мы можем использовать несколько переменных в одном запросе, просто указав их имена через запятую. Например:

result = df.query("age > @{age_threshold} and city == @{city_name}")

Этот запрос отфильтрует строки, где значение столбца "age" больше значения переменной "age_threshold", и значение столбца "city" равно значению переменной "city_name".

6. Числовые операции с переменными

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

result = df.query("age > @{age_threshold * 2}") # умножение переменной на число
result = df.query("age > @{age_threshold + 5}") # сложение переменной с числом
result = df.query("age > @{age_threshold - 10}") # вычитание числа из переменной

7. Строковые операции с переменными

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

result = df.query("city.str.contains(@{city_name})")

8. Загрузка переменных из внешнего источника

Иногда мы хотим использовать переменные, которые заданы вне программы. В таких случаях мы можем загрузить их из внешнего источника, например, из файла CSV или текстового файла. Вот пример, как загрузить переменные из файла CSV:

variables = pd.read_csv('variables.csv').to_dict()

9. ИСПОЛНИМЫЙ ОБРАЗЕЦ КОДА

Мы создали DataFrame, определили переменные и рассмотрели основные примеры запросов с помощью функции query(). Теперь давайте применим все это на реальном образце кода:

import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'city': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
variables = {'age_threshold': 30,
'city_name': 'London'}
result = df.query("age > @{age_threshold} and city == @{city_name}")
print(result)

10. Заключение

Функция query() библиотеки pandas предоставляет удобный способ фильтровать данные в DataFrame на основе условий. Использование переменных внутри запросов делает эту функцию еще более мощной и гибкой.

Часто задаваемые вопросы (FAQ)

  1. Могу ли я использовать переменные со строковыми значениями в запросах? Да, вы можете использовать переменные со строковыми значениями в запросах. Просто заключите имя переменной в символы @{}.

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

  3. Могу ли я загрузить переменные из внешнего источника? Да, вы можете загрузить переменные из внешнего источника, такого как файл CSV или текстовый файл.

  4. Поддерживает ли функция query() такие операции, как суммирование или усреднение? Нет, функция query() используется для фильтрации данных, а не для агрегации. Для подобных операций используйте другие функции библиотеки pandas, такие как sum() или mean().

  5. Можно ли использовать query() совместно с оператором OR в запросах? Нет, функция query() не поддерживает использование оператора OR в запросах.