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

Метод where

Метод where применяется к Series и возвращает объект того же размера, где значения, не соответствующие переданному условию, заменяются на указанное значение. По умолчанию заменой служит NaN. Первым параметром передаётся условие в виде логической маски или вызываемой функции. Вторым параметром other можно задать значение для замены. Метод полезен для фильтрации данных с сохранением размерности.

Синтаксис

ser.where(cond, other=nan, inplace=False, axis=None, level=None)

Пример

Давайте заменим значения меньше 3 на NaN:

import pandas as pd ser = pd.Series([1, 2, 3, 4, 5]) res = ser.where(ser >= 3) print(res)

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

0 NaN 1 NaN 2 3.0 3 4.0 4 5.0 dtype: float64

Пример

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

import pandas as pd ser = pd.Series([10, 20, 30, 40, 50]) res = ser.where(ser < 30, other=0) print(res)

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

0 10 1 20 2 0 3 0 4 0 dtype: int64

Пример

В качестве условия можно использовать вызываемую функцию. Оставим только чётные значения:

import pandas as pd ser = pd.Series([1, 2, 3, 4, 5, 6]) res = ser.where(lambda x: x % 2 == 0, other=-1) print(res)

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

0 -1 1 2 2 -1 3 4 4 -1 5 6 dtype: int64

Пример

Используем метод where совместно с методом isin для фильтрации по списку:

import pandas as pd ser = pd.Series(['a', 'b', 'c', 'd', 'e']) res = ser.where(ser.isin(['b', 'd']), other='x') print(res)

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

0 x 1 b 2 x 3 d 4 x dtype: object

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

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