Статья Автор: Деникина Н.В., Деникин А.В.

(опц.) Фильтр и подсчёт значений

Фильтр без цикла

Урок необязательный. Он требует установленной библиотеки pandas. Если её нет, код в этой тетради не запустится — на понимание модуля это не влияет, все навыки уже получены в уроках 1.1–1.3.

В уроке 1.2 фильтр занимал четыре строки: пустой список, цикл, условие, append. В pandas он записывается одним выражением:

expensive = df[df["budget"] > 100000000]

Читается изнутри наружу. Сначала df["budget"] > 100000000 даёт столбец из True и False — по одному на каждую строку. Затем внешние скобки оставляют только те строки, где стоит True.


Два условия и подсчёт значений

Условия соединяются знаками & (и) и | (или), причём каждое надо взять в скобки — иначе Python поймёт приоритеты не так, как ты ждёшь. Это самая частая ошибка новичка в pandas.

both = df[(df["budget"] > 100000000) & (df["score"] >= 8.0)]

А вся группировка-счётчик из тетради 1.2.2 — со словарём, проверкой ключа и накопителем — сжимается до одного вызова value_counts().



Сверь с ручным счётом

378, 195 и 27 — те же три числа, что вышли из циклов в тетради 1.2.1. И список жанров из value_counts() совпал со словарём из тетради 1.2.2.

Разница только в объёме кода: четыре строки цикла превратились в одну. Ошибиться в одной строке тоже можно — но теперь ты знаешь, с чем сверять.


Сколько строк в expensive? Ответ числом.

Почему в df[(A) & (B)] обязательны скобки вокруг каждого условия?

Что заменяет вызов value_counts() из урока 1.2?

Отметь верные утверждения.
Загрузка...
Чтобы оставить комментарий, необходимо авторизоваться
💬
Пока нет комментариев. Будьте первым!
Печать