Введение
В этом практическом занятии мы научимся обрабатывать пропущенные данные в pandas, что является распространенной проблемой в анализе данных. Мы рассмотрим, как идентифицировать пропущенные данные, заполнять пропущенные значения и удалять ненужные данные. Также мы обсудим экспериментальный скаляр NA в pandas, который можно использовать для обозначения пропущенных значений.
Советы по работе с ВМ
После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импортируем необходимые библиотеки и создаем DataFrame
Для начала нам нужно импортировать необходимые библиотеки — pandas и NumPy. Затем мы создадим DataFrame с некоторыми пропущенными значениями.
import pandas as pd
import numpy as np
## Create a DataFrame with missing values
df = pd.DataFrame(
np.random.randn(5, 3),
index=["a", "c", "e", "f", "h"],
columns=["one", "two", "three"],
)
df["four"] = "bar"
df["five"] = df["one"] > 0
df2 = df.reindex(["a", "b", "c", "d", "e", "f", "g", "h"])
Обнаружение пропущенных значений
Далее мы будем использовать функции isna и notna для обнаружения пропущенных значений.
## Use isna and notna to detect missing values
pd.isna(df2["one"])
df2["four"].notna()
df2.isna()
Вставка пропущенных данных
Здесь мы увидим, как вставить пропущенные значения в наши данные.
## Insert missing values
s = pd.Series([1., 2., 3.])
s.loc[0] = None
Выполняем вычисления с пропущенными данными
Мы выполним некоторые базовые арифметические и статистические вычисления с пропущенными данными.
## Perform calculations with missing data
df["one"].sum()
df.mean(axis=1, numeric_only=True)
df.cumsum()
Удаляем метки осей с пропущенными данными
Мы узнаем, как исключить метки с пропущенными данными с помощью dropna.
df.dropna(axis=0)
df.dropna(axis=1)
df["one"].dropna()
Интерполируем пропущенные значения
Мы будем использовать функцию interpolate для заполнения пропущенных значений в DataFrame.
df = pd.DataFrame(
{
"A": [1, 2.1, np.nan, 4.7, 5.6, 6.8],
"B": [0.25, np.nan, np.nan, 4, 12.2, 14.4],
}
)
df.interpolate()
Заменяем общие значения
Мы узнаем, как заменить произвольные значения на другие значения с помощью replace.
ser = pd.Series([0.0, 1.0, 2.0, 3.0, 4.0])
ser.replace(0, 5)
Понимаем скаляр NA для обозначения пропущенных значений
Наконец, мы обсудим экспериментальный скаляр NA в pandas, который можно использовать для обозначения пропущенных значений.
s = pd.Series([1, 2, None], dtype="Int64")
s
Резюме
В этом практическом занятии мы научились обрабатывать пропущенные данные с использованием pandas. Мы рассмотрели, как обнаруживать, вставлять, вычислять с и удалять пропущенные данные. Мы также узнали, как интерполировать и заменить пропущенные значения. Наконец, мы обсудили экспериментальный скаляр NA в pandas для обозначения пропущенных значений. Эти знания будут очень полезны при работе с задачами анализа реальных данных, где пропущенные данные — часто распространенная проблема.