
Предобработка
Описание отсутствует
В датафрейме с данными о квартирах столбец «Площадь» содержит 3% пропусков. Пропуски распределены случайно (MCAR). Какой подход наименее рискован с точки зрения искажения результатов?
Удалить все строки с пропусками, так как 3% — это мало
Заполнить пропуски средним значением площади по всей выборке
Заполнить пропуски медианой площади в разрезе типа дома
Оставить пропуски как есть и использовать методы, которые их игнорируют
Дан датафрейм df с числовым индексом от 0 до 10. Вы выполняете два запроса: a = df.loc[2:5] b = df.iloc[2:5] Сколько строк вернёт каждый из них?
a — 3 строки, b — 3 строки
a — 4 строки, b — 3 строки
a — 3 строки, b — 4 строки
a — 4 строки, b — 4 строки
В столбце price значения хранятся как строки: ['100', '250, 'нет данных', '300']. Вы вызываете pd.to_numeric(df['price'], errors='coerce'). Что произойдёт со значением 'нет данных' и каким станет тип столбца?
Значение останется строкой 'нет данных', тип столбца — object
Значение заменится на 0, тип столбца — int64
Код прервётся с ошибкой ValueError
Значение заменится на NaN, тип столбца — float64
В столбце amount хранятся строки: ['150', '320', 'неизвестно', '500']. Нужно перевести их в числа, а некорвертируемые значения превратить в NaN, чтобы потом обработать отдельно. Какой код решит задачу?
df['amount'].astype('float64', errors='coerce')
pd.to_numeric(df['amount'], errors='coerce')
df['amount'].astype('float64'), некорректные значения автоматически станут NaN
pd.to_numeric(df['amount'], downcast='integer')
В датафрейме есть столбец email. Вы хотите найти все строки, которые являются дубликатами по этому столбцу, но при этом сохранить первую встреченную запись как уникальную. Какой параметр метода duplicated() нужно использовать?
df.duplicated(subset=['email'], keep='last')
df.duplicated(subset=['email'], keep='first')
df.duplicated(subset=['email'], keep=False)
df.duplicated(subset=['email'], keep=True)
Датафрейм содержит 6 столбцов. Вы хотите удалить только те строки, в которых пусты все значения — строки, где есть хотя бы одно заполненное поле, должны остаться. Какой код это сделает?
df.dropna()
df.dropna(thresh=1)
df.dropna(axis='columns', how='all')
df.dropna(how='all')
В датафрейме из 5 строк. Строки 0 и 1 идентичны, строки 2 и 3 идентичны между собой (но отличаются от 0 и 1), строка 4 уникальна. Что вернёт df.duplicated(keep=False)?
[False, True, False, True, False]
[True, True, True, True, False]
[True, False, True, False, False]
[False, True, True, False, False]
Вы пишете фильтр: выбрать клиентов старше 30, у которых есть активная подписка. Какой код сработает корректно в pandas?
df[(df['age'] > 30) & (df['subscription'] == 'active')]
df[(df['age'] > 30) and (df['subscription'] == 'active')]
df[df['age'] > 30 & df['subscription'] == 'active']
df[(df['age'] > 30) && (df['subscription'] == 'active')]
Вы вызываете df['role'].value_counts() для столбца с должностями сотрудников. В датафрейме 1000 строк, метод возвращает 8 уникальных ролей, но сумма всех счётчиков равна 970. Вы ничего не меняли в вызове метода. Какой вывод корректен?
30 строк были удалены как дубликаты при подсчёте
30 значений в столбце — это пропуски, и value_counts() по умолчанию их исключает
Метод работает некорректно — сумма счётчиков всегда должна равняться длине датафрейма
30 значений совпадают с самой частой категорией и были объединены с ней
Чем pivot_table() отличается от groupby() в pandas?
pivot_table() работает только с числовыми данными, а groupby() — с любыми
pivot_table() позволяет одновременно агрегировать данные и представлять их в виде кросс-таблицы, а groupby() — только агрегировать
groupby() быстрее, чем pivot_table()
pivot_table() не поддерживает несколько агрегирующих функций
Сопоставьте задачу с оптимальным методом:
- Посчитать медиану зарплаты по каждому отделуgroupby
- Построить таблицу: строки — отделы, столбцы — месяцы, значения — сумма расходовpivot_table
- Заполнить пропуски в столбце медианой, вычисленной внутри каждой категорииgroupby + transform
Вы отбираете заказы, сделанные в течение 7 дней после регистрации. Дата регистрации в столбце reg_date (тип datetime64), дата заказа — в order_date (тоже datetime64). Вычисляете разность и фильтруете через between(0, 7). По умолчанию параметр inclusive равен 'both'. Что это означает для результата?
Войдут заказы, сделанные строго между 0 и 7 днями, границы исключены
Войдут заказы, сделанные в день 0 (день регистрации) и в день 7 включительно
Войдут заказы, сделанные начиная со дня 1 и до дня 7, левая граница исключена
Войдут только заказы, сделанные ровно в день 7