Фильтрация данных – фундаментальная задача анализа и обработки данных. В Python библиотека Pandas предоставляет мощные инструменты для работы со структурированными данными, включая возможность фильтровать DataFrames на основе нескольких правил или условий. В этой статье мы рассмотрим различные методы фильтрации DataFrames с использованием нескольких правил, а также приведем примеры кода.
Метод 1: использование логического индексирования
Один из самых простых и гибких способов фильтрации кадров данных — использование логического индексирования. Он включает в себя создание логической маски на основе желаемых условий и последующее применение ее к DataFrame.
import pandas as pd
# Create a DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 35, 40],
'City': ['New York', 'London', 'Paris', 'Tokyo']}
df = pd.DataFrame(data)
# Define multiple filter conditions
condition1 = df['Age'] > 30
condition2 = df['City'] == 'London'
# Apply the conditions using Boolean indexing
filtered_df = df[condition1 & condition2]
print(filtered_df)
Метод 2: использование метода запроса
Pandas предоставляет метод запроса, который позволяет фильтровать фреймы данных с использованием синтаксиса, подобного SQL. Он поддерживает несколько условий с использованием логических операторов.
import pandas as pd
# Create a DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 35, 40],
'City': ['New York', 'London', 'Paris', 'Tokyo']}
df = pd.DataFrame(data)
# Filter the DataFrame using query method
filtered_df = df.query('Age > 30 and City == "London"')
print(filtered_df)
Метод 3: использование метода loc
Метод loc в Pandas позволяет вам получить доступ к группе строк и столбцов по меткам или логическому массиву. Его можно использовать для фильтрации DataFrames на основе нескольких условий.
import pandas as pd
# Create a DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 35, 40],
'City': ['New York', 'London', 'Paris', 'Tokyo']}
df = pd.DataFrame(data)
# Filter the DataFrame using loc method
filtered_df = df.loc[(df['Age'] > 30) & (df['City'] == 'London')]
print(filtered_df)
Метод 4: использование функции запроса
В дополнение к методу запроса Pandas также предоставляет функцию запроса, которая выполняет ту же операцию фильтрации, но возвращает новый DataFrame.
import pandas as pd
# Create a DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 35, 40],
'City': ['New York', 'London', 'Paris', 'Tokyo']}
df = pd.DataFrame(data)
# Filter the DataFrame using query function
filtered_df = df.query('Age > 30 and City == "London"', engine='python')
print(filtered_df)
Фильтрация DataFrames по нескольким правилам — обычное требование при анализе данных. В этой статье мы рассмотрели несколько методов выполнения этой задачи на Python с использованием библиотеки Pandas. Используя логическое индексирование, метод запроса, метод loc и функцию запроса, у вас есть множество вариантов фильтрации DataFrames на основе нескольких условий. Эти методы обеспечивают гибкость и эффективность при работе с большими наборами данных, позволяя извлекать нужную информацию и выполнять дальнейший анализ.