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.