Задача курса
Выравнивание Series по индексу: откуда берётся NaN
Курс «NumPy и pandas: практический тренажёр» · урок «Создание и изменение столбцов: векторные выражения, loc и выравнивание по индексу»
Поймёте на примере, почему при присваивании Series порядок значений не всегда определяет результат.
Условие
Выравнивание Series по индексу: предсказание NaN при присваивании столбца
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая:
- Читает из
stdinцелое числоn— количество строк DataFrame. - Читает следующие
nстрок; каждая содержит два токена через пробел: целое числоaи целое числоb. Создаётpd.DataFrameс именемdfсо столбцами'A'и'B'и стандартнымRangeIndexот0доn-1. - Читает одну строку с несколькими токенами через пробел — индексы (целые числа) для новой Series. Создаёт
idx = [int(x) for x in line.split()]. - Читает следующую строку с таким же количеством токенов — значения (целые числа) для новой Series. Создаёт
pd.Seriesс этими значениями и индексомidx, называет еёs. - Присваивает
df['C'] = s— pandas выравниваетsпо меткам индексаdf. - Выводит в
stdoutтри строки:
- Строка 1: значения столбца
'A'через пробел. - Строка 2: значения столбца
'C'через пробел, гдеNaNвыводится строкойnan. - Строка 3:
C_nan_count: <k>, гдеk— количествоNaNв столбце'C'.
Для вывода значений столбцов используйте следующий подход: для каждого элемента выводите nan если pd.isna(v), иначе — целое число через int(v). Элементы разделяйте пробелами.
Ввод и вывод
Программа читает stdin и пишет в stdout.
Формат ввода
n
a_0 b_0
a_1 b_1
...
a_{n-1} b_{n-1}
idx_0 idx_1 ... idx_m
val_0 val_1 ... val_m
- Первая строка: целое
n(2 ≤ n ≤ 8). - Следующие
nстрок: пары целых чиселa b. - Строка с индексами Series: от 1 до
nцелых чисел из диапазона[0, n-1], все различные. - Строка со значениями Series: столько же целых чисел.
Формат вывода
Три строки:
- Значения
'A'через пробел (целые числа). - Значения
'C'через пробел (целые числа). C_nan_count: <k>.
Примеры
Пример 1
- Ввод
4 10 2 20 5 30 1 40 3 0 2 100 300
- Ожидаемый результат
10 20 30 40 100 nan 300 nan C_nan_count: 2
Попробуйте решить
РешениеPython
Без регистрации · результат не сохраняется
