pandas.Series.str.contains#

Series.str.содержит(шаблон, case=True, flags=0, na=, regex=True)[источник]#

Проверить, содержится ли шаблон или регулярное выражение в строке Series или Index.

Возвращает булевый Series или Index на основе того, содержится ли заданный шаблон или регулярное выражение в строке Series или Index.

Параметры:
шаблонstr

Последовательность символов или регулярное выражение.

случайbool, по умолчанию True

Если True, с учетом регистра.

флагиint, по умолчанию 0 (без флагов)

Флаги для передачи в модуль re, например re.IGNORECASE.

naскаляр, опционально

Значение заполнения для пропущенных значений. По умолчанию зависит от типа данных массива. Для object-dtype, numpy.nan используется. Для nullable StringDtype, pandas.NA используется. Для "str" dtype, False используется.

regexbool, по умолчанию True

Если True, предполагает, что pat — регулярное выражение.

Если False, рассматривает шаблон как буквальную строку.

Возвращает:
Серия или индекс булевых значений

Series или Index логических значений, указывающих, содержится ли заданный шаблон в строке каждого элемента Series или Index.

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

match

Аналогично, но строже, полагаясь на re.match вместо re.search.

Series.str.startswith

Проверка, соответствует ли начало каждого строкового элемента шаблону.

Series.str.endswith

То же, что и startswith, но проверяет конец строки.

Примеры

Возврат Series булевых значений с использованием только литерального шаблона.

>>> s1 = pd.Series(['Mouse', 'dog', 'house and parrot', '23', np.nan])
>>> s1.str.contains('og', regex=False)
0    False
1     True
2    False
3    False
4      NaN
dtype: object

Возврат Index булевых значений с использованием только литерального шаблона.

>>> ind = pd.Index(['Mouse', 'dog', 'house and parrot', '23.0', np.nan])
>>> ind.str.contains('23', regex=False)
Index([False, False, False, True, nan], dtype='object')

Указание чувствительности к регистру с помощью случай.

>>> s1.str.contains('oG', case=True, regex=True)
0    False
1    False
2    False
3    False
4      NaN
dtype: object

Указание na будет False вместо NaN заменяет значения NaN на False. Если Series или Index не содержит значений NaN, результирующий тип данных будет bool, в противном случае, object тип данных.

>>> s1.str.contains('og', na=False, regex=True)
0    False
1     True
2    False
3    False
4    False
dtype: bool

Возврат 'house' или 'dog', когда любое выражение встречается в строке.

>>> s1.str.contains('house|dog', regex=True)
0    False
1     True
2     True
3    False
4      NaN
dtype: object

Игнорирование чувствительности к регистру с помощью флаги с регулярным выражением.

>>> import re
>>> s1.str.contains('PARROT', flags=re.IGNORECASE, regex=True)
0    False
1    False
2     True
3    False
4      NaN
dtype: object

Возврат любой цифры с использованием регулярного выражения.

>>> s1.str.contains('\\d', regex=True)
0    False
1    False
2    False
3     True
4      NaN
dtype: object

Обеспечить шаблон не является буквальным шаблоном, когда regex установлено в True. Обратите внимание, что в следующем примере можно ожидать только s2[1] и s2[3] чтобы вернуть True. Однако ‘.0’ как регулярное выражение соответствует любому символу, за которым следует 0.

>>> s2 = pd.Series(['40', '40.0', '41', '41.0', '35'])
>>> s2.str.contains('.0', regex=True)
0     True
1     True
2    False
3     True
4    False
dtype: bool