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

Выборка столбцов и строк: [], loc и iloc без цепочной индексации

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

loc, iloc и безопасное присваивание: выборка и изменение DataFrame

Что уже дано

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

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

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

  1. Читает из stdin целое число n — количество строк таблицы.
  2. Читает следующие n строк; каждая содержит три токена через пробел: название (строка без пробелов), цена (целое число), количество (целое число). Пример строки: Стол 5000 3.
  3. Строит pd.DataFrame с именем df из словаря списков с ключами 'name', 'price', 'qty'. Индекс — автоматический RangeIndex.
  4. Шаг A. Выбирает один столбец 'price' через df['price']. Выводит строку: col_type=<тип>, где <тип>type(df['price']).__name__.
  5. Шаг B. Выбирает два столбца ['name', 'qty'] через df[['name', 'qty']]. Выводит строку: subset_type=<тип> subset_shape=<shape> — тип и shape результата.
  6. Шаг C. Выбирает строку с меткой 1 через df.loc[1]. Выводит строку: loc1_name=<значение поля name>, то есть df.loc[1, 'name'].
  7. Шаг D. Выбирает строку с позицией 0 через df.iloc[0]. Выводит строку: iloc0_price=<значение поля price>, то есть df.iloc[0, 1].
  8. Шаг E. Строит булеву маску mask = df['price'] > threshold, где threshold читается из stdin как последняя строка ввода (целое число). Выполняет одним вызовом df.loc[mask, 'qty'] = 0. Выводит список значений столбца 'qty' через пробел.

Ввод и вывод

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

Формат ввода

n
name1 price1 qty1
...
nameN priceN qtyN
threshold

Дополнительные ограничения: n >= 2.

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

col_type=Series
subset_type=DataFrame subset_shape=(n, 2)
loc1_name=<name>
iloc0_price=<price>
<qty0> <qty1> ... <qtyN-1>
О данных в ответах

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

Проверяется тестами (1)
  • Тест 1
    Ввод
    4
    Стол 5000 3
    Стул 1500 10
    Шкаф 12000 2
    Диван 25000 1
    8000
    Ожидаемый вывод
    col_type=Series
    subset_type=DataFrame subset_shape=(4, 2)
    loc1_name=Стул
    iloc0_price=5000
    3 10 0 0
Решение
Как проверяется решение

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

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