Задача курса

pandas DataFrame из списка словарей: индексы и dtypes

Курс «NumPy и 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

Ввод
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

Попробуйте решить

РешениеPython
Без регистрации · результат не сохраняется
pandas DataFrame из списка словарей: индексы и dtypes