РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
121 of 687 menu

Метод dropna

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

Синтаксис

df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

Основные параметры

Рассмотрим основные параметры метода dropna:

  • axis - определяет, по какой оси удалять: 0 (строки) или 1 (столбцы)
  • how - определяет условие удаления: 'any' (удалять, если есть хотя бы один NaN) или 'all' (удалять, если все значения NaN)
  • thresh - минимальное количество не-NaN значений, которое должно оставаться в строке/столбце
  • subset - список столбцов для проверки на NaN
  • inplace - если True, изменяет исходный DataFrame и возвращает None

Пример

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

import pandas as pd import numpy as np df = pd.DataFrame({ 'a': [1, 2, np.nan, 4, 5], 'b': [10, np.nan, 30, 40, 50], 'c': [100, 200, 300, np.nan, 500] }) res = df.dropna() print(res)

Результат выполнения кода:

a b c 0 1.0 10.0 100.0 4 5.0 50.0 500.0

Пример

Удалим столбцы, в которых все значения являются пропущенными. Для этого используем параметр axis со значением 1 и параметр how со значением 'all':

import pandas as pd import numpy as np df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [np.nan, np.nan, np.nan, np.nan, np.nan], 'c': [10, 20, 30, 40, 50] }) res = df.dropna(axis=1, how='all') print(res)

Результат выполнения кода:

a c 0 1 10 1 2 20 2 3 30 3 4 40 4 5 50

Пример

Оставим строки, содержащие минимум два не-пропущенных значения. Для этого используем параметр thresh со значением 2:

import pandas as pd import numpy as np df = pd.DataFrame({ 'a': [1, np.nan, 3, np.nan, 5], 'b': [10, np.nan, 30, 40, np.nan], 'c': [100, 200, np.nan, 400, 500] }) res = df.dropna(thresh=2) print(res)

Результат выполнения кода:

a b c 0 1.0 10.0 100.0 2 3.0 30.0 NaN 3 NaN 40.0 400.0

Пример

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

import pandas as pd import numpy as np df = pd.DataFrame({ 'a': [1, 2, np.nan, 4, 5], 'b': [10, 20, 30, 40, np.nan], 'c': [100, 200, 300, 400, 500] }) res = df.dropna(subset=['a', 'b']) print(res)

Результат выполнения кода:

a b c 0 1.0 10.0 100.0 1 2.0 20.0 200.0 3 4.0 40.0 400.0

Пример

Изменим исходный DataFrame, не создавая новый объект. Для этого используем параметр inplace со значением True:

import pandas as pd import numpy as np df = pd.DataFrame({ 'a': [1, np.nan, 3, 4, 5], 'b': [10, 20, np.nan, 40, 50], 'c': [100, 200, 300, np.nan, 500] }) df.dropna(inplace=True) print(df)

Результат выполнения кода:

a b c 0 1.0 10.0 100.0 4 5.0 50.0 500.0

Смотрите также

  • метод fillna,
    который заполняет пропущенные значения
  • метод isna,
    который проверяет значения на NaN
  • метод notna,
    который проверяет значения на не-NaN
  • метод drop,
    который удаляет строки или столбцы по меткам
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить