DataFrame.isin() / Series.isin()

Метод isin() возвращает булеву маску того же размера, что и исходный объект: True там, где значение входит в переданный набор. Удобен для фильтрации по списку допустимых значений.

Сигнатура

DataFrame.isin(values)
Series.isin(values)

Параметры

  • values — список, кортеж, Series, DataFrame или словарь. Если словарь — ключи интерпретируются как имена столбцов, а значения — как списки допустимых значений для каждого столбца.

Возвращаемое значение

Булев DataFrame или Series тех же размеров, что и исходный объект.

Примеры

Пример 1. Series с простым списком

import pandas as pd

s = pd.Series(["FWD", "LEFT", "STOP", "RIGHT", "FWD"])
print(s.isin(["FWD", "STOP"]))
0     True
1    False
2     True
3    False
4     True
dtype: bool

Пример 2. Фильтрация DataFrame по столбцу

import pandas as pd

df = pd.DataFrame({
    "cmd":   ["FWD", "LEFT", "STOP", "FWD"],
    "speed": [150, 120, 0, 160],
})
print(df[df["cmd"].isin(["FWD", "LEFT"])])
    cmd  speed
0   FWD    150
1  LEFT    120
3   FWD    160

Пример 3. Словарь — разные значения для разных столбцов

import pandas as pd

df = pd.DataFrame({
    "sensor": ["A", "B", "A", "C"],
    "status": ["ok", "err", "ok", "ok"],
})
mask = df.isin({"sensor": ["A"], "status": ["ok"]})
print(mask)
   sensor  status
0    True    True
1   False   False
2    True    True
3   False    True

Пример 4. Применение по всему DataFrame

import pandas as pd

df = pd.DataFrame({"a": [1, 2, 3], "b": [3, 4, 5]})
print(df.isin([2, 3]))
       a      b
0  False   True
1   True  False
2   True  False

Пример 5. Исключение значений (~isin)

Команды, кроме STOP:

import pandas as pd

df = pd.DataFrame({"cmd": ["FWD", "STOP", "LEFT", "STOP", "RIGHT"]})
print(df[~df["cmd"].isin(["STOP"])])
     cmd
0    FWD
2   LEFT
4  RIGHT

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.