pandas: устройство, выборка и изменение таблиц

Series и DataFrame: создание, index, columns, shape, dtypes

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

Series из словаря: метки, позиции и атрибуты index, shape, dtype

Что уже дано

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

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

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

  1. Читает из stdin целое число k — количество пар.
  2. Читает следующие k строк; каждая содержит два токена через пробел: метка (строка без пробелов) и значение (целое число). Пример строки: alpha 42.
  3. Создаёт pd.Series из словаря {метка: значение, …} в порядке прочитанных строк — назовите его s.
  4. Выводит в stdout ровно k + 4 строк в следующем порядке:
  • Строки 1…k: для каждого i от 0 до k-1 — одну строку вида label=<метка> pos=<i> value=<значение>, где <метка>s.index[i], <i> — позиция (целое число), <значение>s.iloc[i].
  • Строка k+1: shape=<shape> — кортеж вида (k,).
  • Строка k+2: dtype=<dtype> — строковое представление s.dtype.
  • Строка k+3: index_type=<тип> — имя класса объекта s.index, получите через type(s.index).__name__.
  • Строка k+4: first_label_is_pos_0=<bool> — результат сравнения s.index[0] == 0 в виде True или False.

Последняя строка демонстрирует ключевую идею: когда индекс — строки, метка первого элемента не равна его позиции 0.

Ввод и вывод

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

Формат ввода

k
метка1 значение1
метка2 значение2
...

Дополнительные ограничения: k >= 1; все строковые метки попарно различны.

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

label=метка1 pos=0 value=значение1
label=метка2 pos=1 value=значение2
...
shape=(k,)
dtype=int64
index_type=Index
first_label_is_pos_0=False
О данных в ответах

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

Проверяется тестами (1)
  • Тест 1
    Ввод
    3
    alpha 10
    beta 20
    gamma 30
    
    Ожидаемый вывод
    label=alpha pos=0 value=10
    label=beta pos=1 value=20
    label=gamma pos=2 value=30
    shape=(3,)
    dtype=int64
    index_type=Index
    first_label_is_pos_0=False
    
Решение
Как проверяется решение

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

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