pandas флаг регулярного выражения, если шаблон соответствует - PullRequest
0 голосов
/ 04 мая 2020

У меня есть строковый столбец в pandas фрейме данных.

Я хочу пометить другой столбец с 0/1, если следующий шаблон соответствует первому столбцу.

Типичный значение для столбца будет выглядеть следующим образом:

"b064571d-9d72-4225-8ccf-5528622c5680"

8x - 4x - 4x - 4x - 12x

, где x - это строка символов, за которой следует дефис (где символ alphanumeri c и может быть в верхнем или нижнем регистре)

Использую ли я np.where и совпадение с регулярным выражением - не уверен, что это будет?

Большое спасибо

Я собрал свою лучшую попытку - но не уверен в синтаксисе регулярного выражения для сопоставления с шаблоном, с разделителем дефисов

8x - 4x - 4x - 4x - 12x

s1 = pd.Series(['b064571d-9d72-4225-8ccf-5528622c5680', 'dog', 'house 
and parrot', '23', np.NaN])

s1.str.contains('[^a-zA-Z0-9]', regex=True)

1 Ответ

0 голосов
/ 04 мая 2020

Шаблон может выглядеть так:

s1.str.contains(r'[a-zA-Z0-9]{8}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{12}', regex=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...