Python обычный экс - PullRequest
       2

Python обычный экс

2 голосов
/ 06 января 2020

Мне пришлось выполнить эту задачу с помощью python: выбрать все слова в столбце фрейма данных, которые не содержат только одну или несколько (строчных и прописных) букв, пробелов и точек. Я попробовал этот кусок кода, но он говорит мне, что шаблон неверен:

import re
countries = gapminder['country']
# Pattern that contains all words that do not satisfied the specification
pattern = re.compile('[a-zA-Z \.]+')
mask = countries.str.contains(pattern)
# Select the complement of mask 
invalid_countries = countries[~mask]
print(invalid_countries)

Ответы [ 2 ]

2 голосов
/ 06 января 2020

Вы можете использовать

invalid_countries = countries.str.contains(r'^[^a-zA-Z.\s]+$')

Регулярное выражение: ^[^a-zA-Z.\s]+$:

  • ^ - начало строки
  • [^a-zA-Z.\s]+ - 1 или больше символов, кроме букв, ., пробел
  • $ - конец строки.
0 голосов
/ 06 января 2020

Вы используете contains, который будет искать шаблон в любом месте строки. Вы, вероятно, хотите вместо этого match с шаблоном привязки (ставя ^ в начале и $ в конце, чтобы заставить всю строку совпадать).

pattern = re.compile('^[a-zA-Z \.]+$')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...