Что выведет код Senior Выборка и фильтрация обновлено
Маска, отрицание и пропуски
Вопрос
Что выведет код? По строке на каждый print.
import pandas as pd
import numpy as np
df = pd.DataFrame({'x': [1, 6, np.nan, 8, 3]})
print(len(df[~(df['x'] > 5)]))
print(len(df[df['x'] <= 5]))
print(len(df[df['x'] != df['x']]))
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: 3, 2, 1. Сравнения с NaN дают False.
Что выведет
3
2
1
Разбор
Сравнения с NaN дают False. ~(x > 5) превращает False для NaN в True, поэтому строк три: 1, NaN, 3. x <= 5 для NaN ложно, остаются две. x != x истинно только для NaN (NaN не равен себе), это старый трюк поиска пропусков, понятнее isna().
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.