Метод query() для DataFrame в Pandas

PythonPythonBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Советы по работе с ВМ

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

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) pandas(("Pandas")) -.-> pandas/DataSelectionGroup(["Data Selection"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) pandas(("Pandas")) -.-> pandas/ReadingDataGroup(["Reading Data"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) pandas/ReadingDataGroup -.-> pandas/read_csv("Read CSV") pandas/ReadingDataGroup -.-> pandas/read_excel("Read Excel") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") pandas/DataSelectionGroup -.-> pandas/select_rows("Select Rows") pandas/DataSelectionGroup -.-> pandas/conditional_selection("Conditional Selection") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") python/DataScienceandMachineLearningGroup -.-> python/data_analysis("Data Analysis") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("Data Visualization") subgraph Lab Skills pandas/read_csv -.-> lab-68705{{"Метод query() для DataFrame в Pandas"}} pandas/read_excel -.-> lab-68705{{"Метод query() для DataFrame в Pandas"}} python/conditional_statements -.-> lab-68705{{"Метод query() для DataFrame в Pandas"}} pandas/select_rows -.-> lab-68705{{"Метод query() для DataFrame в Pandas"}} pandas/conditional_selection -.-> lab-68705{{"Метод query() для DataFrame в Pandas"}} python/importing_modules -.-> lab-68705{{"Метод query() для DataFrame в Pandas"}} python/data_collections -.-> lab-68705{{"Метод query() для DataFrame в Pandas"}} python/data_analysis -.-> lab-68705{{"Метод query() для DataFrame в Pandas"}} python/data_visualization -.-> lab-68705{{"Метод query() для DataFrame в Pandas"}} end

Создание DataFrame

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

#importing pandas as pd
import pandas as pd

#creating the DataFrame
df = pd.DataFrame({'Name': ['Chetan', 'Yashas', 'Yuvraj', 'Pooja', 'Sindu', 'Renuka'],
                   'Age': [19, 26, 22, 24, 21, 23],
                   'Height': [165, 150, 168, 157, 155, 170],
                   'Weight': [60, 65, 70, 50, 52, 55]})

Фильтрация DataFrame по одному столбцу

Далее давайте отфильтруем DataFrame по одному столбцу с использованием метода query(). В этом примере мы отфильтруем DataFrame так, чтобы он включал только строки, где возраст меньше 23.

#filtering the DataFrame by age
filtered_df = df.query('Age < 23')

#printing the filtered DataFrame
print(filtered_df)

Результат:

    Name  Age  Height  Weight
0  Chetan   19     165      60
2  Yuvraj   22     168      70
4   Sindu   21     155      52

Фильтрация DataFrame путём сравнения двух столбцов

Теперь давайте отфильтруем DataFrame, сравнивая два столбца с использованием метода query(). В этом примере мы отфильтруем DataFrame так, чтобы он включал только строки, где значения в столбце "sci_Marks" больше значений в столбце "Maths_Marks".

#creating the DataFrame
df = pd.DataFrame({'Name': ['Chetan', 'Yashas', 'Yuvraj', 'Pooja', 'Sindu', 'Renuka'],
                  'sci_Marks': [85, 70, 75, 90, 95, 70],
                   'Maths_Marks': [82, 79, 80, 89, 92, 70]})

#filtering the DataFrame by comparing two columns
filtered_df = df.query('sci_Marks > Maths_Marks')

#printing the filtered DataFrame
print(filtered_df)

Результат:

     Name  sci_Marks  Maths_Marks
0  Chetan         85           82
3   Pooja         90           89
4   Sindu         95           92

Фильтрация DataFrame с использованием оператора 'AND'

Наконец, давайте отфильтруем DataFrame с использованием оператора 'AND' для комбинирования нескольких условий. В этом примере мы отфильтруем DataFrame так, чтобы он включал только строки, где рост выше 155 и вес выше 60.

#filtering the DataFrame by using 'AND' operator
filtered_df = df.query('Height > 155 and Weight > 60')

#printing the filtered DataFrame
print(filtered_df)

Результат:

     Name  Age  Height  Weight
1  Yashas   26     150      65
2  Yuvraj   22     168      70

Резюме

Поздравляем! В этом практическом занятии вы узнали, как использовать метод query() в библиотеке Pandas. Теперь вы знаете, как фильтровать DataFrame на основе булевого выражения, фильтровать по одному столбцу, сравнивать два столбца и использовать оператор 'AND' для комбинирования нескольких условий. Этот метод полезен для быстрого и эффективного фильтрации данных в DataFrame Pandas. Продолжайте практиковаться и изучать разные сценарии использования, чтобы стать более опытным в использовании метода query().