Menu
Coddy logo textTech

Очистка данных — пропущенные значения

Урок 6 из 19 курса Аналитика в pandas на Coddy.

Обычно CSV-файлы содержат пропущенные данные, неверные имена столбцов, дубликаты, некорректные значения и неверные типы данных. Модуль Pandas обладает всеми инструментами для решения этих проблем.

Пропущенные данные

Чтобы узнать, является ли значение пропущенным или нет:

df.isna()

Чтобы узнать, сколько пропущенных значений в каждом столбце:

df.isna().sum()

Функция isna() преобразует все значения в true или false (пропущено или нет), затем применяется метод. sum() будет рассматривать true как 1, а false как 0.

Чтобы перебрать столбцы и количество пропущенных в них значений, используйте метод items() так же, как в словаре (хотя это объект Pandas series):

for column, missing_num in df.isna().sum().items():
	print(column, missing_num)

Чтобы заполнить все эти пропущенные значения для всего датафрейма, используйте метод fillna():

df = df.fillna("some value")

Чтобы заполнить пропущенные значения только для одного столбца, используйте функцию fillna() для этого столбца:

df["some_column"] = df["some_column"].fillna("some value")

Также есть возможность удалить все строки с пропущенными значениями:

df = df.dropna()
challenge icon

Задание

Легко

CSV-файл missing.csv содержит ошибки.

Вот первые 5 строк файла:

ID,COUNTRY,COLOR,SKILL,SKILL_POINTS,UTILIZATION,IS_VALID
1,France,Signal violet,marksmanship,14,0.1924,1
1,France,Signal violet,marksmanship,14,0.1924,1
2,Solomon Islands,Pearl violet,,4,,1
3,Germany,,calligraphy,12,0.88646,0

Очистите данные:

  • Заполните пропущенные значения во всех столбцах, в которых более 2 пропущенных значений, значением Missing
  • Удалите все остальные строки, содержащие пропущенные значения.

Чтобы увидеть прогресс, выведите df: print(df)

Сохраните окончательный результат в переменной df.
Не выводите df, чтобы пройти тест!

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

# pandas as pd уже импортирован
df = pd.read_csv("./missing.csv")
# Напишите свой код ниже

Все уроки раздела Аналитика в pandas