Как отфильтровать dataframe в Python: легкий способ для фильтрации данных 🐍
Чтобы отфильтровать dataframe в Python, вы можете использовать метод query()
или оператор индексации ([]
).
С помощью метода query()
, вы можете указать условие фильтрации в виде строки. Например, если вы хотите отфильтровать только строки, в которых значение столбца 'age' больше 25, вы можете написать:
filtered_df = df.query('age > 25')
Если вы предпочитаете использовать оператор индексации, вы можете написать:
filtered_df = df[df['age'] > 25]
В этом случае, вы создаете новый dataframe filtered_df
, который содержит только строки, удовлетворяющие условию фильтрации.
Детальный ответ
Как отфильтровать DataFrame в Python
DataFrame - это одна из основных структур данных в библиотеке Pandas, которая широко используется для анализа данных в Python. DataFrame представляет собой таблицу с рядами и столбцами, где каждый столбец содержит данные определенного типа.
Фильтрация на основе условий
Для фильтрации DataFrame на основе определенного условия в Python вы можете использовать функцию query() или операторы сравнения, такие как ==, !=, <, >, <=, >=.
Например, давайте предположим, что у нас есть DataFrame с данными о студентах:
import pandas as pd
data = {'Имя': ['Алексей', 'Мария', 'Иван', 'Екатерина'],
'Возраст': [21, 19, 20, 22],
'Оценка': [85, 92, 78, 96]}
df = pd.DataFrame(data)
print(df)
Вывод:
Имя Возраст Оценка
0 Алексей 21 85
1 Мария 19 92
2 Иван 20 78
3 Екатерина 22 96
Если мы хотим отфильтровать студентов, у которых оценка выше 90, мы можем использовать следующий код:
filtered_df = df[df['Оценка'] > 90]
print(filtered_df)
Вывод:
Имя Возраст Оценка
1 Мария 19 92
3 Екатерина 22 96
Мы можем также использовать функцию query() для фильтрации DataFrame:
filtered_df = df.query('Оценка > 90')
print(filtered_df)
Вывод:
Имя Возраст Оценка
1 Мария 19 92
3 Екатерина 22 96
Фильтрация с использованием логических операторов
Вы также можете комбинировать несколько условий с помощью логических операторов, таких как и (&), или (|), и не (~).
Например, пусть мы хотим отфильтровать студентов, у которых оценка выше 90 и возраст меньше 21:
filtered_df = df[(df['Оценка'] > 90) & (df['Возраст'] < 21)]
print(filtered_df)
Вывод:
Имя Возраст Оценка
1 Мария 19 92
Извлечение уникальных значений из столбца
Если вам нужно извлечь уникальные значения из столбца DataFrame, вы можете использовать функцию unique().
Например, давайте извлечем уникальные имена студентов из нашего DataFrame:
unique_names = df['Имя'].unique()
print(unique_names)
Вывод:
['Алексей' 'Мария' 'Иван' 'Екатерина']
Фильтрация с использованием методов строк
Если вам нужно выполнить фильтрацию на основе значений строки в столбце DataFrame, вы можете использовать методы строк, такие как contains() и startswith().
Например, давайте отфильтруем студентов, чьи имена начинаются с буквы "А":
filtered_df = df[df['Имя'].startswith('А')]
print(filtered_df)
Вывод:
Имя Возраст Оценка
0 Алексей 21 85
Или вы можете отфильтровать студентов, у которых в имени содержится определенная буква или фраза:
filtered_df = df[df['Имя'].contains('ия')]
print(filtered_df)
Вывод:
Имя Возраст Оценка
1 Мария 19 92
3 Екатерина 22 96
Заключение
В этой статье мы рассмотрели различные способы фильтрации DataFrame в Python с использованием библиотеки Pandas. Вы узнали, как фильтровать DataFrame на основе условий, использовать логические операторы, извлекать уникальные значения и фильтровать строки с помощью методов строк. Теперь у вас есть несколько мощных инструментов для работы с данными в DataFrame.