Фильтрация DataFrame Pandas со списком строк в столбце: изучение нескольких методов эффективной фильтрации данных

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

Метод 1: использование метода .isin()
Один простой способ отфильтровать DataFrame на основе списка строк — использовать метод .isin(). Этот метод позволяет нам проверить, существуют ли значения в столбце в указанном списке, и возвращает логическую маску, указывающую совпадения. Затем мы можем использовать эту маску для фильтрации DataFrame. Вот пример:

import pandas as pd
# Create a DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
        'Age': [25, 30, 35, 40, 45]}
df = pd.DataFrame(data)
# Define the list of strings to filter
filter_list = ['Bob', 'Charlie']
# Filter the DataFrame
filtered_df = df[df['Name'].isin(filter_list)]
print(filtered_df)

Выход:

      Name  Age
1      Bob   30
2  Charlie   35

Метод 2: использование метода .str.contains()
Другой подход — использование метода .str.contains(), который позволяет нам проверить, существует ли шаблон внутри каждого значения столбец. Мы можем использовать этот метод для фильтрации DataFrame на основе наличия строк из списка. Вот пример:

import pandas as pd
# Create a DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
        'Age': [25, 30, 35, 40, 45]}
df = pd.DataFrame(data)
# Define the list of strings to filter
filter_list = ['Bo', 'ar']
# Filter the DataFrame
filtered_df = df[df['Name'].str.contains('|'.join(filter_list))]
print(filtered_df)

Выход:

      Name  Age
1      Bob   30
2  Charlie   35

Метод 3: использование понимания списка
Если вы предпочитаете более краткий подход, вы можете использовать понимание списка для фильтрации DataFrame на основе списка строк. Этот метод включает в себя перебор столбца DataFrame и проверку соответствия какого-либо элемента строкам в списке. Вот пример:

import pandas as pd
# Create a DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
        'Age': [25, 30, 35, 40, 45]}
df = pd.DataFrame(data)
# Define the list of strings to filter
filter_list = ['Bob', 'Charlie']
# Filter the DataFrame using list comprehension
filtered_df = df[[any(name in item for name in filter_list) for item in df['Name']]]
print(filtered_df)

Выход:

      Name  Age
1      Bob   30
2  Charlie   35

В этой статье мы рассмотрели несколько методов фильтрации DataFrame Pandas на основе списка строк в столбце. Мы рассмотрели три разных подхода: использование метода .isin(), метода .str.contains()и понимания списка. Каждый метод предлагает свои преимущества и может использоваться в зависимости от конкретных требований вашей задачи анализа данных. Применяя эти методы, вы сможете эффективно фильтровать свой DataFrame и извлекать нужную информацию. Не забудьте выбрать метод, который лучше всего соответствует вашим потребностям и оптимизирует процесс фильтрации данных.

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