Освоение фильтрации данных в Pandas: подробное руководство с примерами кода

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

Содержание:

  1. Фильтрация с помощью логического индексирования

  2. Фильтрация с помощью операторов сравнения

  3. Фильтрация с помощью метода isin()

  4. Фильтрация с помощью строковых методов

  5. Фильтрация с помощью регулярных выражений

  6. Фильтрация с помощью пользовательских функций

  7. Фильтрация с помощью логического индексирования.
    Один из самых простых способов фильтрации значений столбцов в Pandas — использование логического индексирования. Этот метод предполагает создание логической маски, определяющей условия фильтрации, а затем применение маски к DataFrame.

import pandas as pd
# Create a DataFrame
data = {'Name': ['John', 'Alice', 'Bob', 'Emma', 'Oliver'],
        'Age': [25, 32, 28, 35, 29],
        'City': ['New York', 'Paris', 'London', 'London', 'Tokyo']}
df = pd.DataFrame(data)
# Filter based on a condition
filtered_df = df[df['Age'] > 30]
print(filtered_df)
  1. Фильтрация с помощью операторов сравнения.
    Pandas предоставляет множество операторов сравнения (например, >, <, ==, 10и т. д.), которые можно использовать для фильтрации значений столбцов на основе определенных условий.
# Filter using comparison operators
filtered_df = df[df['City'] != 'London']
print(filtered_df)
  1. Фильтрация с помощью метода isin().
    Метод isin()позволяет фильтровать на основе нескольких значений в столбце. Он принимает список или массив значений и возвращает строки, в которых значение столбца соответствует любому из указанных значений.
# Filter using the isin() method
cities_to_keep = ['Paris', 'Tokyo']
filtered_df = df[df['City'].isin(cities_to_keep)]
print(filtered_df)
  1. Фильтрация с помощью строковых методов.
    Если столбец содержит строковые значения, вы можете использовать различные строковые методы для фильтрации DataFrame на основе определенных шаблонов или условий.
# Filter using string methods
filtered_df = df[df['Name'].str.startswith('J')]
print(filtered_df)
  1. Фильтрация с помощью регулярных выражений.
    Pandas также поддерживает фильтрацию с использованием регулярных выражений, что обеспечивает более расширенные возможности сопоставления с образцом.
import re
# Filter using regular expressions
filtered_df = df[df['Name'].str.contains('^J[a-z]+', regex=True)]
print(filtered_df)
  1. Фильтрация с помощью пользовательских функций.
    Если требуется сложная фильтрация, вы можете определить пользовательские функции и применить их к DataFrame с помощью метода apply().
# Filter using a custom function
def starts_with_vowel(city):
    vowels = ['a', 'e', 'i', 'o', 'u']
    return city[0].lower() in vowels
filtered_df = df[df['City'].apply(starts_with_vowel)]
print(filtered_df)

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

Не забывайте использовать логическое индексирование, операторы сравнения, метод isin(), строковые методы, регулярные выражения и пользовательские функции для фильтрации данных на основе определенных условий. Освоив эти методы, вы получите инструменты, необходимые для решения широкого спектра задач фильтрации данных в Pandas.

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