🔍 Как заполнить пропуски в Pandas: простые и эффективные способы

Чтобы заполнить пропуски в данных с помощью библиотеки pandas, вы можете использовать метод fillna(). Этот метод позволяет указать значения, которыми нужно заполнить пропуски во всем DataFrame или только в определенном столбце.

Вот простой пример:


import pandas as pd

# Создаем DataFrame с пропусками
data = {'A': [1, 2, None, 4, 5],
        'B': [None, 2, 3, 4, None],
        'C': [None, 2, None, 4, 5]}

df = pd.DataFrame(data)

# Заполняем пропуски значением 0
df_filled = df.fillna(0)

print(df_filled)

В этом примере мы создаем DataFrame с пропусками в столбцах 'A', 'B' и 'C'. Затем мы используем метод fillna(0), чтобы заполнить все пропуски значением 0. Результат будет следующим:


     A    B    C
0  1.0  0.0  0.0
1  2.0  2.0  2.0
2  0.0  3.0  0.0
3  4.0  4.0  4.0
4  5.0  0.0  5.0

Таким образом, все пропуски были заполнены значением 0. Вы можете использовать любое другое значение вместо 0, в зависимости от ваших потребностей.

Детальный ответ

Как заполнить пропуски в Pandas

Одной из задач, с которыми мы сталкиваемся при анализе данных, является работа с пропущенными значениями. В Pandas, библиотеке для работы с данными в Python, существует несколько способов заполнения пропусков, которые мы рассмотрим в этой статье.

Метод fillna()

Метод fillna() позволяет заменить отсутствующие значения в столбце или во всем DataFrame на заданное значение. Например, если у нас есть DataFrame, содержащий столбец 'Возраст' с пропущенными значениями, мы можем заполнить их средним значением возраста:


import pandas as pd

data = {'Имя': ['Анна', 'Иван', 'Мария', 'Сергей'],
        'Возраст': [25, None, 30, 35]}

df = pd.DataFrame(data)

df['Возраст'].fillna(df['Возраст'].mean(), inplace=True)

В результате выполнения этого кода пропущенное значение в столбце 'Возраст' будет заменено на среднее значение возраста всех людей в DataFrame.

Метод fillna() с параметром method

Метод fillna() также имеет параметр method, который позволяет заполнить пропуски с использованием значений из предыдущей или следующей строки. Например, если у нас есть DataFrame, где пропуски в столбце 'Город' могут быть заполнены предыдущим значением:


data = {'Имя': ['Анна', 'Иван', 'Мария', 'Сергей'],
        'Город': ['Москва', None, None, 'Санкт-Петербург']}

df = pd.DataFrame(data)

df['Город'].fillna(method='ffill', inplace=True)

В результате выполнения этого кода пропущенные значения в столбце 'Город' будут заполнены значениями из предыдущих строк, если они есть. Это может быть полезно, когда значения в столбце не меняются часто и можно предположить, что пропущенные значения должны быть такими же, как и предыдущие значения.

Метод interpolate()

Метод interpolate() позволяет заполнить пропущенные значения, используя интерполяцию. Это означает, что пропущенные значения будут заполнены значениями, которые находятся между соседними значениями. Например:


data = {'Год': [2010, 2012, None, None, 2016, 2018],
        'Температура': [20, 25, None, None, 30, 35]}

df = pd.DataFrame(data)

df['Год'].interpolate(inplace=True)
df['Температура'].interpolate(inplace=True)

В результате выполнения этого кода пропущенные значения в столбцах 'Год' и 'Температура' будут заполнены значениями, которые представляют собой линейную интерполяцию между соседними значениями.

Метод bfill()

Метод bfill() позволяет заполнить пропущенные значения, используя значения из следующей строки. Например, если у нас есть DataFrame, где пропуски в столбце 'Цена' могут быть заполнены значениями из следующих строк:


data = {'Товар': ['Апельсины', 'Бананы', 'Яблоки', 'Мандарины'],
        'Цена': [100, None, None, 150]}

df = pd.DataFrame(data)

df['Цена'].bfill(inplace=True)

В результате выполнения этого кода пропущенные значения в столбце 'Цена' будут заполнены значениями из следующих строк, если они есть.

Метод dropna()

Метод dropna() позволяет удалить строки или столбцы, содержащие пропущенные значения. Если у нас есть DataFrame, и мы хотим удалить все строки, содержащие пропущенные значения, мы можем использовать следующий код:


df.dropna(inplace=True)

В результате выполнения этого кода будут удалены все строки, содержащие хотя бы одно пропущенное значение.

Вывод

В этой статье мы рассмотрели несколько способов заполнения пропущенных значений в Pandas. Мы изучили методы fillna() для замены пропущенных значений на заданные значения, interpolate() для заполнения пропусков с использованием интерполяции, bfill() для заполнения пропусков значениями из следующих строк и dropna() для удаления строк или столбцов с пропущенными значениями.

Управление пропущенными значениями является важной частью работы с данными, и знание этих методов в Pandas поможет вам эффективно анализировать и представлять данные.

Видео по теме

Датафреймы pandas. Пропуски данных

ПРАКТИКА Pandas | NaN, Null | Работа с пропусками в Pandas | МАШИННОЕ ОБУЧЕНИЕ

Лекция по курсу ММО - 03.03.2021, устранение пропусков в данных, нормализация признаков

Похожие статьи:

🔍 Как заполнить пропуски в Pandas: простые и эффективные способы