Что выведет код Middle Производительность и память обновлено

downcast и int8

Вопрос

Что выведет код? По строке на каждый print.

import pandas as pd

a = pd.to_numeric(pd.Series([1, 2, 3]), downcast='integer')
b = pd.to_numeric(pd.Series([1, 2, 300]), downcast='integer')
c = pd.Series(['x', 'y'] * 1000).astype('category')
print(a.dtype, b.dtype)
print(c.cat.codes.dtype, len(c.cat.categories))

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: int8 int16, int8 2. downcast выбирает минимальный целый тип: 1..3 помещаются в int8, 300 уже требует int16.

Что выведет

int8 int16
int8 2

Разбор

downcast выбирает минимальный целый тип: 1..3 помещаются в int8, 300 уже требует int16. У категории два значения, коды хранятся в int8.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.