как удалить строки в которых присутствуют стоп слова

Читаю большой текстовый файл по кускам с помощью Pandas.

Список:

[email protected]:1@23
[email protected]:1@23
[email protected]:123@
[email protected]:131
[email protected]:1@31
[email protected]:131
[email protected]:131

Пример - блек лист слова списком:

1@
123456@
12345678@

На выходе хочу получить:

[email protected]:1@23
[email protected]:123@
[email protected]:131
[email protected]:131

Важна быстрая работа, поэтому построчное чтение файла не подходит. Требуется регулярка для работы сразу с большим списком) Надо рассматривать только эту часть [email protected] точнее, до первого @.


Ответы (1 шт):

Автор решения: CrazyElf

Ну я бы использовал pandas.Series.startswith. Там, как ни странно, можно использовать tuple из набора строк в качестве аргумента:

import pandas as pd

email_list = """[email protected]:1@23
[email protected]:1@23
[email protected]:123@
[email protected]:131
[email protected]:1@31
[email protected]:131
[email protected]:131""".split()

black_list = ('1@', '123456@', '12345678@')

df = pd.DataFrame({'email': email_list})

df[~df.email.str.startswith(black_list)]

Результат:

    email
1   [email protected]:1@23
2   [email protected]:123@
3   [email protected]:131
5   [email protected]:131
→ Ссылка