Метод rfind
Метод rfind аксессора str применяется к Series
и возвращает индекс последнего вхождения указанной подстроки в каждой строке.
Первым параметром передаётся искомая подстрока.
Вторым параметром можно указать начальную позицию поиска,
а третьим - конечную позицию. Если подстрока не найдена,
метод возвращает -1.
Синтаксис
ser.str.rfind(sub[, start[, end]])
Пример
Давайте найдём последнее вхождение подстрокы 'a' в каждой строке:
import pandas as pd
ser = pd.Series(['abcda', 'aab', 'def', 'aaa'])
res = ser.str.rfind('a')
print(res)
Результат выполнения кода:
0 4
1 1
2 -1
3 2
dtype: int64
Пример
Теперь ограничим поиск диапазоном с помощью параметров start и end:
import pandas as pd
ser = pd.Series(['abcda', 'aab', 'def', 'aaa'])
res = ser.str.rfind('a', start=1, end=3)
print(res)
Результат выполнения кода:
0 1
1 1
2 -1
3 2
dtype: int64
Пример
Поиск подстроки в строке с пробелами:
import pandas as pd
ser = pd.Series(['hello world', 'world hello', 'hello hello'])
res = ser.str.rfind('hello')
print(res)
Результат выполнения кода:
0 0
1 6
2 6
dtype: int64
Пример
Использование метода для поиска символа в данных из CSV-файла:
a,b
article,10
data,20
user,30
import pandas as pd
df = pd.read_csv('data.csv')
res = df['a'].str.rfind('a')
print(res)
Результат выполнения кода:
0 3
1 1
2 -1
Name: a, dtype: int64
Пример
Поиск подстроки с использованием параметра start:
import pandas as pd
ser = pd.Series(['abcde', 'aab', 'def', 'aaa'])
res = ser.str.rfind('a', start=2)
print(res)
Результат выполнения кода:
0 -1
1 -1
2 -1
3 2
dtype: int64
Смотрите также
-
метод
find,
который находит первое вхождение подстроки -
метод
startswith,
который проверяет начало строки на подстроку -
метод
endswith,
который проверяет окончание строки на подстроку -
метод
contains,
который проверяет наличие подстроки