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

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

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

DataFrame из списка словарей: dtypes, метки и позиции строк

Что уже дано

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

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

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

  1. Читает из stdin целое число n — количество строк таблицы.
  2. Читает следующие n строк; каждая содержит три токена через пробел: город (строка без пробелов), население (целое число), площадь (вещественное число, может быть целым). Пример строки: Казань 1200000 614.0.
  3. Формирует список словарей, где каждый словарь имеет ключи 'city', 'population', 'area' — в таком порядке. Создаёт pd.DataFrame из этого списка словарей; называет его df.
  4. Выводит в stdout ровно n + 5 строк в следующем порядке:
  • Строки 1…n: для каждой позиции i от 0 до n-1 — строку вида pos=<i> label=<метка> city=<значение df['city'].iloc[i]>, где <метка>df.index[i] (целое число).
  • Строка n+1: shape=<shape> — кортеж вида (n, 3).
  • Строка n+2: columns=<список>list(df.columns) через стандартный print.
  • Строка n+3: city_dtype=<dtype>df.dtypes['city'].
  • Строка n+4: population_dtype=<dtype>df.dtypes['population'].
  • Строка n+5: area_dtype=<dtype>df.dtypes['area'].

Для строк n+3…n+5 используйте формат city_dtype=object, population_dtype=int64, area_dtype=float64.

Ввод и вывод

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

Формат ввода

n
город1 население1 площадь1
город2 население2 площадь2
...

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

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

pos=0 label=0 city=город1
pos=1 label=1 city=город2
...
shape=(n, 3)
columns=['city', 'population', 'area']
city_dtype=object
population_dtype=int64
area_dtype=float64
О данных в ответах

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

Проверяется тестами (1)
  • Тест 1
    Ввод
    3
    Казань 1200000 614.0
    Уфа 1100000 707.5
    Сочи 400000 176.77
    Ожидаемый вывод
    pos=0 label=0 city=Казань
    pos=1 label=1 city=Уфа
    pos=2 label=2 city=Сочи
    shape=(3, 3)
    columns=['city', 'population', 'area']
    city_dtype=object
    population_dtype=int64
    area_dtype=float64
Решение
Как проверяется решение

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

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