Эффективная фильтрация данных в Pandas с использованием оператора «in»: подробное руководство

Фильтрация данных — обычная операция при работе с большими наборами данных в pandas. Оператор «in» обеспечивает удобный способ фильтрации данных на основе набора значений. В этой статье мы рассмотрим различные методы фильтрации данных с использованием оператора «in» в pandas, а также приведем примеры кода для каждого метода.

Метод 1: использование оператора «in» с методом Series.isin()
Метод isin()в pandas позволяет нам фильтровать серию на основе того, присутствуют ли ее значения в данный набор. Вот пример:

import pandas as pd
# Create a DataFrame
data = {'Name': ['John', 'Alice', 'Bob', 'Charlie', 'Eve'],
        'Age': [25, 30, 35, 40, 45]}
df = pd.DataFrame(data)
# Filter rows where 'Name' is either 'Alice' or 'Bob'
filtered_df = df[df['Name'].isin(['Alice', 'Bob'])]
print(filtered_df)

Выход:

   Name  Age
1  Alice   30
2    Bob   35

Метод 2: использование оператора «in» с методом DataFrame.query()
Метод query()в pandas позволяет нам фильтровать строки на основе заданных условий, включая использование оператор «в». Вот пример:

import pandas as pd
# Create a DataFrame
data = {'Name': ['John', 'Alice', 'Bob', 'Charlie', 'Eve'],
        'Age': [25, 30, 35, 40, 45]}
df = pd.DataFrame(data)
# Filter rows where 'Name' is either 'Alice' or 'Bob'
filtered_df = df.query("Name in ['Alice', 'Bob']")
print(filtered_df)

Выход:

   Name  Age
1  Alice   30
2    Bob   35

Метод 3: использование оператора «in» с методом DataFrame.isin()
Метод isin()также можно применять непосредственно к DataFrame, что позволяет нам фильтровать строки на основе нескольких столбцы. Вот пример:

import pandas as pd
# Create a DataFrame
data = {'Name': ['John', 'Alice', 'Bob', 'Charlie', 'Eve'],
        'Age': [25, 30, 35, 40, 45],
        'City': ['New York', 'London', 'Paris', 'Tokyo', 'Sydney']}
df = pd.DataFrame(data)
# Filter rows where 'Name' is either 'Alice' or 'Bob' and 'City' is either 'London' or 'Paris'
filtered_df = df[df.isin({'Name': ['Alice', 'Bob'], 'City': ['London', 'Paris']}).any(1)]
print(filtered_df)

Выход:

    Name   Age    City
1  Alice  30.0  London
2    Bob  35.0   Paris

В этой статье мы рассмотрели различные методы фильтрации данных с использованием оператора «in» в pandas. Используя метод isin()с объектами Series и DataFrame, а также используя метод query(), мы можем легко фильтровать данные на основе определенных значений или условий. Эти методы обеспечивают гибкость и эффективность при работе с большими наборами данных в Pandas, позволяя легко манипулировать и анализировать данные.

Не забывайте использовать эти методы в соответствии с вашими конкретными требованиями и структурами данных для достижения оптимальных результатов в ваших проектах.