Series.str.contains()

Метод Series.str.contains() проверяет, содержит ли каждый элемент строкового Series указанную подстроку или совпадение с регулярным выражением. Возвращает булев Series — удобно для фильтрации.

Сигнатура

Series.str.contains(pat, case=True, flags=0, na=None, regex=True)

Параметры

  • pat — подстрока или регулярка.

  • case — учитывать регистр.

  • regex — интерпретировать pat как regex.

  • na — чем заменить NaN в результате.

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

Булев Series.

Примеры

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

import pandas as pd

s = pd.Series(["temp_22", "hum_55", "temp_23"])
print(s.str.contains("temp"))
0     True
1    False
2     True
dtype: bool

Пример 2. Без учёта регистра

import pandas as pd

s = pd.Series(["ERROR: x", "Info: y", "warning: z"])
print(s.str.contains("error", case=False))
0     True
1    False
2    False
dtype: bool

Пример 3. Фильтрация логов

import pandas as pd

logs = pd.Series([
    "INFO: motor started",
    "ERROR: timeout",
    "INFO: data ok",
    "ERROR: low voltage",
])
print(logs[logs.str.contains("ERROR")])
1       ERROR: timeout
3    ERROR: low voltage
dtype: object

Пример 4. Regex — цифры в строке

import pandas as pd

s = pd.Series(["abc", "a1b", "xyz"])
print(s.str.contains(r"\d", regex=True))
0    False
1     True
2    False
dtype: bool

Пример 5. Обработка NaN

import pandas as pd
import numpy as np

s = pd.Series(["temp", np.nan, "hum"])
print(s.str.contains("temp", na=False))
0     True
1    False
2    False
dtype: bool

См. также

Примечание

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

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