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

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

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

iloc с нестандартным индексом и выборка столбцов: разница между меткой и позицией

Что уже дано

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

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

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

  1. Читает из stdin целое число n — количество строк таблицы.
  2. Читает следующие n строк; каждая содержит три токена через пробел: город (строка без пробелов), температура (вещественное число), влажность (целое число). Пример строки: Москва 18.5 55.
  3. Строит pd.DataFrame с именем df из словаря списков с ключами 'city', 'temp', 'humidity'. В качестве индекса устанавливает pd.RangeIndex(start=10, stop=10 + n, step=1) — метки строк будут 10, 11, ..., 10+n-1, а не 0, 1, ....
  4. Шаг A. Выбирает столбец 'city' через df['city']. Выводит строку: col_shape=<shape> col_type=<тип>, где <тип>type(df['city']).__name__.
  5. Шаг B. Выбирает два столбца ['temp', 'humidity'] через df[['temp', 'humidity']]. Выводит строку: subset_shape=<shape> subset_type=<тип>, где <тип>type(...).__name__.
  6. Шаг C. Получает первую строку по позиции через df.iloc[0] и выводит строку: iloc0_city=<значение поля city>.
  7. Шаг D. Получает последнюю строку по позиции через df.iloc[-1] и выводит строку: ilocN_humidity=<значение поля humidity> (целое число).
  8. Шаг E. Получает ячейку по позиции строки 1 и позиции столбца 1 через df.iloc[1, 1]. Выводит строку: cell=<значение> (вещественное число).
  9. Шаг F. Пытается обратиться к строке с меткой 10 через df.loc[10] и выводит строку: loc10_city=<значение поля city>. Затем пытается обратиться к той же первой строке через df.iloc[0] и выводит строку: iloc0_city_again=<значение поля city>. Убеждается, что оба значения совпадают.

Ввод и вывод

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

Формат ввода

n
city1 temp1 humidity1
...
cityN tempN humidityN

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

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

col_shape=(<n>,) col_type=Series
subset_shape=(<n>, 2) subset_type=DataFrame
iloc0_city=<city>
ilocN_humidity=<humidity>
cell=<temp>
loc10_city=<city>
iloc0_city_again=<city>
О данных в ответах

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

Проверяется тестами (1)
  • Тест 1
    Ввод
    4
    Москва 18.5 55
    Сочи 22.1 60
    Казань 15.0 80
    Уфа 9.8 70
    
    Ожидаемый вывод
    col_shape=(4,) col_type=Series
    subset_shape=(4, 2) subset_type=DataFrame
    iloc0_city=Москва
    ilocN_humidity=70
    cell=22.1
    loc10_city=Москва
    iloc0_city_again=Москва
    
Решение
Как проверяется решение

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

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