pandas: типы столбцов и очистка по правилу

Текстовые столбцы: нормализация и разбор через .str

Содержание курса

Каталог товаров: split, startswith и contains без циклов

Что уже дано

Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.

Что нужно сделать

Напишите программу, которая обрабатывает каталог товаров:

  1. Читает из stdin целое число n — количество строк каталога.
  2. Читает следующие n строк; каждая содержит один токен — артикул товара в формате КАТЕГОРИЯ-МОДЕЛЬ-НОМЕР, например Phone-Galaxy-12 или Tablet-iPad-5. Токены не содержат пробелов внутри.
  3. Создаёт pd.Series с именем codes из прочитанных строк.
  4. Разбивает codes по символу '-' через .str.split('-', expand=True) и сохраняет результат в parts. Это DataFrame с тремя столбцами 0, 1, 2.
  5. Создаёт pd.Series с именем category — столбец parts[0], приведённый к нижнему регистру через .str.lower().
  6. Создаёт булев pd.Series с именем is_phoneTrue там, где category начинается с 'phone', через .str.startswith('phone').
  7. Создаёт булев pd.Series с именем has_digitTrue там, где исходный codes содержит хотя бы одну цифру, через .str.contains(r'\d', regex=True).
  8. Выводит в stdout ровно четыре строки:
  • Строка 1: значения category через пробел.
  • Строка 2: значения is_phone через пробел (True/False).
  • Строка 3: значения has_digit через пробел (True/False).
  • Строка 4: артикулы из codes, для которых is_phone равно True, через пробел. Если таких нет — пустая строка.

Запрещено использовать Python-циклы для вычислений в шагах 4–7. Генераторные выражения разрешены только для форматирования строк вывода в шаге 8.

Ввод и вывод

Программа читает stdin и пишет в stdout.

Формат ввода

Первая строка — целое число n (1 ≤ n ≤ 20).
Следующие n строк — артикулы вида КАТЕГОРИЯ-МОДЕЛЬ-НОМЕР без пробелов.

Формат вывода

Ровно четыре строки в порядке, описанном выше. Значения внутри строки разделяются одним пробелом.

О данных в ответах

Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.

Проверяется тестами (1)
  • Тест 1
    Ввод
    5
    Phone-Galaxy-12
    Tablet-iPad-5
    phone-Pixel-7
    Laptop-ThinkPad-3
    Phone-iPhone-14
    Ожидаемый вывод
    phone tablet phone laptop phone
    True False True False True
    True True True True True
    Phone-Galaxy-12 phone-Pixel-7 Phone-iPhone-14
Решение
Как проверяется решение

Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.

Отправьте решение, чтобы увидеть результаты тестов.