Что выведет код Middle Чтение и запись данных обновлено

NA при чтении CSV

Вопрос

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

import io
import pandas as pd

text = 'country,qty\nRU,1\nNA,\nKZ,3\n'
a = pd.read_csv(io.StringIO(text))
print(a['country'].isna().sum(), a['qty'].tolist())
b = pd.read_csv(io.StringIO(text), keep_default_na=False, na_values={'qty': ['']})
print(b['country'].tolist())

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

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

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

Коротко

Код выведет: 1 [1.0, nan, 3.0], ['RU', 'NA', 'KZ']. По умолчанию строка NA считается пропуском, поэтому в country один NaN.

Что выведет

1 [1.0, nan, 3.0]
['RU', 'NA', 'KZ']

Разбор

По умолчанию строка NA считается пропуском, поэтому в country один NaN. Пустая ячейка в qty тоже NaN, и колонка стала float. С keep_default_na=False строка NA сохраняется, а пустые значения в qty объявлены пропуском явно.

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

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

Термины по теме