Что выведет код 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 ошибок.
Термины по теме
Ещё по теме «Чтение и запись данных»
- Как прочитать большой файл в pandas
- Файл больше памяти в pandas
- Агрегат по кускам через chunksize
- Вложенный JSON заказов в таблицу
- Разбор выгрузки из Excel: sep, decimal, dtype
- Запятая в дробях при чтении CSV
- CSV для русского Excel
- read_csv для русской выгрузки