Предобработка

Описание отсутствует

Вопросов: 12
1

В датафрейме с данными о квартирах столбец «Площадь» содержит 3% пропусков. Пропуски распределены случайно (MCAR). Какой подход наименее рискован с точки зрения искажения результатов?

  • Удалить все строки с пропусками, так как 3% — это мало

  • Заполнить пропуски средним значением площади по всей выборке

  • Заполнить пропуски медианой площади в разрезе типа дома

  • Оставить пропуски как есть и использовать методы, которые их игнорируют

2

Дан датафрейм 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 строки

3

В столбце price значения хранятся как строки: ['100', '250, 'нет данных', '300']. Вы вызываете pd.to_numeric(df['price'], errors='coerce'). Что произойдёт со значением 'нет данных' и каким станет тип столбца?

  • Значение останется строкой 'нет данных', тип столбца — object

  • Значение заменится на 0, тип столбца — int64

  • Код прервётся с ошибкой ValueError

  • Значение заменится на NaN, тип столбца — float64

4

В столбце 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')

5

В датафрейме есть столбец 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

Датафрейм содержит 6 столбцов. Вы хотите удалить только те строки, в которых пусты все значения — строки, где есть хотя бы одно заполненное поле, должны остаться. Какой код это сделает?

  • df.dropna()

  • df.dropna(thresh=1)

  • df.dropna(axis='columns', how='all')

  • df.dropna(how='all')

7

В датафрейме из 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]

8

Вы пишете фильтр: выбрать клиентов старше 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')]

9

Вы вызываете df['role'].value_counts() для столбца с должностями сотрудников. В датафрейме 1000 строк, метод возвращает 8 уникальных ролей, но сумма всех счётчиков равна 970. Вы ничего не меняли в вызове метода. Какой вывод корректен?

  • 30 строк были удалены как дубликаты при подсчёте

  • 30 значений в столбце — это пропуски, и value_counts() по умолчанию их исключает

  • Метод работает некорректно — сумма счётчиков всегда должна равняться длине датафрейма

  • 30 значений совпадают с самой частой категорией и были объединены с ней

10

Чем pivot_table() отличается от groupby() в pandas?

  • pivot_table() работает только с числовыми данными, а groupby() — с любыми

  • pivot_table() позволяет одновременно агрегировать данные и представлять их в виде кросс-таблицы, а groupby() — только агрегировать

  • groupby() быстрее, чем pivot_table()

  • pivot_table() не поддерживает несколько агрегирующих функций

11

Сопоставьте задачу с оптимальным методом:

  • Посчитать медиану зарплаты по каждому отделу
    groupby
  • Построить таблицу: строки — отделы, столбцы — месяцы, значения — сумма расходов
    pivot_table
  • Заполнить пропуски в столбце медианой, вычисленной внутри каждой категории
    groupby + transform
12

Вы отбираете заказы, сделанные в течение 7 дней после регистрации. Дата регистрации в столбце reg_date (тип datetime64), дата заказа — в order_date (тоже datetime64). Вычисляете разность и фильтруете через between(0, 7). По умолчанию параметр inclusive равен 'both'. Что это означает для результата?

  • Войдут заказы, сделанные строго между 0 и 7 днями, границы исключены

  • Войдут заказы, сделанные в день 0 (день регистрации) и в день 7 включительно

  • Войдут заказы, сделанные начиная со дня 1 и до дня 7, левая граница исключена

  • Войдут только заказы, сделанные ровно в день 7