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

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

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

Журнал регистраций: домен через .str.split и фильтрация по домену через .str.contains

Что уже дано

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

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

Напишите программу, которая анализирует журнал регистраций пользователей:

  1. Читает из stdin целое число n — количество строк журнала.
  2. Читает следующие n строк; каждая содержит адрес электронной почты в формате имя@домен, например alice@gmail.com или BOB@MAIL.RU. Вокруг адреса могут быть пробелы, но внутри самого адреса пробелов нет.
  3. Создаёт pd.Series с именем emails из прочитанных строк.
  4. Создаёт pd.Series с именем emails_clean — результат .str.strip().str.lower() на emails.
  5. Разбивает emails_clean по символу '@' через .str.split('@', expand=True) и сохраняет результат в parts (DataFrame с двумя столбцами 0 и 1).
  6. Создаёт pd.Series с именем domain — столбец parts[1] (доменная часть адреса).
  7. Создаёт булев pd.Series с именем is_gmailTrue там, где domain содержит подстроку 'gmail', через .str.contains('gmail', regex=False).
  8. Создаёт булев pd.Series с именем is_ruTrue там, где domain оканчивается на '.ru', через .str.endswith('.ru').
  9. Выводит в stdout ровно четыре строки:
  • Строка 1: значения emails_clean через пробел.
  • Строка 2: значения domain через пробел.
  • Строка 3: значения is_gmail через пробел (True/False).
  • Строка 4: адреса из emails_clean, для которых is_ru равно True, через пробел. Если таких нет — пустая строка.

Запрещено использовать Python-циклы для шагов 4–9.

Ввод и вывод

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

Формат ввода

Первая строка — целое число n (1 ≤ n ≤ 15).
Следующие n строк — адреса электронной почты; вокруг адреса допустимы пробелы; после .str.strip() внутри адреса пробелов нет.

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

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

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

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

Проверяется тестами (1)
  • Тест 1
    Ввод
    5
      Alice@Gmail.COM 
    BOB@MAIL.RU  
    carol@yandex.ru
    Dave@Gmail.com
    eve@outlook.com
    Ожидаемый вывод
    alice@gmail.com bob@mail.ru carol@yandex.ru dave@gmail.com eve@outlook.com
    gmail.com mail.ru yandex.ru gmail.com outlook.com
    True False False True False
    bob@mail.ru carol@yandex.ru
Решение
Как проверяется решение

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

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