Введение
В этом практическом занятии вы научитесь использовать метод fillna() из библиотеки Pandas. Метод fillna() позволяет заполнять пропущенные или NaN (Not a Number) значения в DataFrame заданными значениями или с использованием заданного метода.
Советы по работе с ВМ
После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и приступить к практике в Jupyter Notebook.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импорт необходимых библиотек
Начнем с импорта библиотеки Pandas:
import pandas as pd
Создать DataFrame с пропущенными значениями
Далее создадим DataFrame с некоторыми пропущенными значениями:
df = pd.DataFrame([[2, pd.nan, 0], [pd.nan, pd.nan, 5], [pd.nan, 3, pd.nan]], columns=list('ABC'))
print("The DataFrame is:")
print(df)
Заполнить пропущенные значения заданным значением
Мы можем использовать метод fillna(), чтобы заменить все пропущенные значения заданным значением. Например, заменим все пропущенные значения в DataFrame на значение 2:
print("Filling NaN values:")
print(df.fillna(2))
Заполнить пропущенные значения с использованием метода forward fill
Вместо использования одного значения для заполнения пропущенных значений, мы можем распространять непустые значения вперед с использованием метода заполнения вперед (ffill). Этот метод заполняет пропущенные значения последним замеченным непустым значением в том же столбце.
print("Filling NaN values using forward fill method:")
print(df.fillna(method='ffill'))
Заполнить пропущенные значения методом forward fill по столбцам
Мы также можем использовать метод заполнения вперед по столбцам, установив параметр axis равным 1.
print("Filling NaN values using forward fill method along the columns:")
print(df.fillna(method='ffill', axis=1))
Заполнить пропущенные значения методом backward fill
Аналогично, мы можем использовать метод заполнения назад (bfill), чтобы распространять непустые значения назад. Этот метод заполняет пропущенные значения следующим замеченным непустым значением в том же столбце.
print("Filling NaN values using backward fill method:")
print(df.fillna(method='bfill'))
Заменить пропущенные значения конкретных столбцов заданными значениями
Мы можем заменить пропущенные значения конкретных столбцов различными заданными значениями. Например, заменим пропущенные значения в столбцах 'A', 'B', 'C' и 'D' на значения 0, 1, 2 и 3 соответственно.
print("Filling NaN values in specific columns:")
new_values = {'A': 0, 'B': 1, 'C': 2, 'D': 3}
print(df.fillna(value=new_values))
Ограничить количество последовательных NaN - значений для заполнения
Мы также можем ограничить количество последовательных пропущенных значений для заполнения с использованием параметра limit. Например, ограничим заполнение вперед только одним последовательным пропущенным значением.
print("Filling NaN values with a limit:")
print(df.fillna(method='ffill', limit=1))
Резюме
В этом практическом занятии вы узнали, как использовать метод fillna() из библиотеки Pandas для заполнения пропущенных или NaN значений в DataFrame. Вы изучили различные способы заполнения пропущенных значений, включая использование заданного значения, заполнение вперед, заполнение назад и ограничение количества последовательных пропущенных значений для заполнения. Fillna - полезный метод для обработки пропущенных данных и обеспечения целостности вашего DataFrame.