Series.str.find()

Метод Series.str.find() ищет позицию первого вхождения подстроки в каждом элементе строкового Series. Возвращает целочисленный индекс или -1 при отсутствии. Поведение аналогично методу Python str.find.

Сигнатура

Series.str.find(sub, start=0, end=None)

Параметры

  • sub — искомая подстрока.

  • start — индекс начала поиска.

  • end — индекс конца (не включается).

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

Series с целочисленными позициями (или -1).

Примеры

Пример 1. Базовый поиск

import pandas as pd

s = pd.Series(["temp=22.5", "temp=23.0", "hum=55"])
print(s.str.find("="))
0    4
1    4
2    3
dtype: int64

Пример 2. Отсутствующая подстрока

import pandas as pd

s = pd.Series(["ok", "fail", "warning"])
print(s.str.find("err"))
0   -1
1   -1
2   -1
dtype: int64

Пример 3. С параметром start

import pandas as pd

s = pd.Series(["aa=bb=cc", "x=y=z"])
print(s.str.find("=", start=3))
0    5
1    3
dtype: int64

Пример 4. Извлечение значения после знака =

import pandas as pd

s = pd.Series(["temp=22.5", "temp=23.0"])
pos = s.str.find("=")
values = pd.Series([row[p+1:] for row, p in zip(s, pos)])
print(values)
0    22.5
1    23.0
dtype: object

Пример 5. Совместно с булевой фильтрацией

import pandas as pd

logs = pd.Series(["INFO: ok", "ERROR: fail", "INFO: done"])
mask = logs.str.find("ERROR") != -1
print(logs[mask])
1    ERROR: fail
dtype: object

См. также

Примечание

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

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