от
Я пытаюсь найти местоположение регулярного выражения в ряду данных и назначить его другому ряду. Я могу сделать это для строки с
df['text'].str.lower().str.find('hello')
Эта функция выдает индекс совпадения. лайк
text
World Hello
Hello WOrld
WOW
используя это
df['match_ind'] = df['text'].str.lower().str.find('hello')
это дает
text            match_ind
World Hello     6
Hello WOrld     0
WOW             

но вместо hello
я хочу использовать регулярное выражение, скажем,
'hello|world'
. В настоящее время это дает мне -1
df['text'].str.lower().str.find('hello|world')
Я использую python3 Находят ли панды поддержку регулярных выражений или есть какой-то способ сделать это для панд.              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Я думаю, что вы ищете
re.finditer()
:
import re
df.text.apply(lambda x:[m.start() for m in re.finditer('hello|world',x,flags=re.I)])
0    [0, 6]
1    [0, 6]
2        []
    
...