Series и DataFrame: создание, index, columns, shape, dtypes
Содержание курса
Найди и исправь: три ошибки в создании Series/DataFrame и чтении атрибутов
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет.
В редакторе уже есть сломанный код. В нём ровно три ошибки в трёх независимых строках:
pd.Seriesсоздаётся из словаря{'a': 1, 'b': 2, 'c': 3}, но при выводеindex_typeиспользуетсяtype(s.values).__name__вместоtype(s.index).__name__— в результате выводится тип массива значений, а не тип объекта-индекса.pd.DataFrameсоздаётся из словаря списков, но в коде написаноpd.DataFrame([cols]), гдеcols— сам словарь, обёрнутый в список. Это создаёт DataFrame из одного словаря-строки вместо словаря столбцов. Нужно передать словарь напрямую:pd.DataFrame(cols).- При выводе
shapeDataFrame используетсяdf.shape[0]вместоdf.shape— печатается только число строк, а не полный кортеж.
Каждая ошибка находится в отдельной строке; исправление каждой не затрагивает остальные.
Что нужно сделать
Найдите и исправьте все три ошибки так, чтобы программа:
- Читала из
stdinцелое числоn— количество записей. - Читала следующие
nстрок; каждая содержит два токена через пробел:метка(строка без пробелов) изначение(целое число). - Создавала
pd.Seriesиз словаря{метка: значение, …}в порядке прочитанных строк — имя переменнойs. - Создавала
pd.DataFrameиз словаря списков с двумя столбцами:'label'(список меток) и'value'(список значений) — имя переменнойdf. - Выводила в
stdoutровно пять строк:
- Строка 1:
index_type=<тип>— имя классаs.indexчерезtype(s.index).__name__. - Строка 2:
s_shape=<shape>— кортеж вида(n,). - Строка 3:
s_dtype=<dtype>— строковое представлениеs.dtype. - Строка 4:
df_shape=<shape>— полный кортеж вида(n, 2). - Строка 5:
first_label_is_pos_0=<bool>— результатs.index[0] == 0в видеTrueилиFalse.
Ввод и вывод
Программа читает stdin и пишет в stdout.
Формат ввода
n метка1 значение1 метка2 значение2 ...
Дополнительные ограничения: n >= 1; все строковые метки попарно различны.
Формат вывода
index_type=Index
s_shape=(n,)
s_dtype=int64
df_shape=(n, 2)
first_label_is_pos_0=False
О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
- Тест 1Ввод
3 alpha 10 beta 20 gamma 30
Ожидаемый выводindex_type=Index s_shape=(3,) s_dtype=int64 df_shape=(3, 2) first_label_is_pos_0=False
Как проверяется решение
Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
