Pandas — один из главных инструментов аналитика, дата-инженера и Python-разработчика. На практике чаще всего нужны не сложные модели, а быстрые ответы на вопросы: как отфильтровать строки, выбрать нужные столбцы, найти пропуски или отобрать данные по нескольким условиям.
Выбор столбцов
df['name'] # один столбец
df[['name', 'age']] # несколько столбцов
Если нужен срез данных для отчёта или проверки — это базовый и самый частый сценарий.
Фильтрация строк по условию
df[df['age'] > 30]
Так можно быстро выбрать пользователей старше 30 лет, заказы дороже определённой суммы или события за нужный период.
Несколько условий
df[(df['age'] > 30) & (df['city'] == 'Moscow')]
df[(df['age'] < 18) | (df['status'] == 'student')]
Важно:
- для `И` используется `&`
- для `ИЛИ` — `|`
- каждое условие берётся в скобки
Фильтрация по списку значений
df[df['city'].isin(['Moscow', 'Kazan', 'Sochi'])]
Подходит, когда нужно оставить записи только по нужным регионам, категориям или статусам.
Исключение значений
df[~df['status'].isin(['deleted', 'blocked'])]
Символ `~` инвертирует условие — удобно для очистки данных.
Работа с пропусками
df[df['email'].isna()] # где email отсутствует
df[df['phone'].notna()] # где phone заполнен
Это полезно при аудите качества данных и подготовке датасета к обработке.
Фильтрация по строкам
df[df['name'].str.contains('Иван', na=False)]
df[df['email'].str.endswith('@gmail.com', na=False)]
Методы `.str` помогают искать подстроки, домены, префиксы и шаблоны в текстовых полях. ✉️
Выборка через `query()`
df.query("age > 30 and city == 'Moscow'")
Такой синтаксис часто читается проще, особенно в длинных фильтрах.
Получение первых строк после фильтрации
df[df['price'] > 1000].head(5)
Полезно для быстрой проверки результата без вывода всей таблицы. ⚡
Сортировка после выборки
df[df['category'] == 'laptop'].sort_values('price', ascending=False)
Частый кейс: сначала отобрать нужные данные, потом отсортировать по дате, сумме или рейтингу.
Практический пример
result = df[
(df['salary'] > 120000) &
(df['experience'] >= 3) &
(df['city'].isin(['Москва', 'Санкт-Петербург']))
][['name', 'salary', 'city']]
Так можно получить список подходящих кандидатов, клиентов или товаров по нескольким критериям. 💼
Что важно запомнить
- `df[...]` — основной способ фильтрации
- `isin()` удобен для списков значений
- `isna()` и `notna()` — для пропусков
- `str.contains()` — для текстовых полей
- `query()` делает сложные условия более читаемыми
Грамотная фильтрация в Pandas экономит часы работы и помогает быстро находить нужные данные даже в больших таблицах. 🚀
📚 Ниже по ленте — мягко рекомендую посмотреть подборку каналов про IT: там много полезного по Python, аналитике, data engineering и разработке.