Обнаружение специальных символов с регулярным выражением в python? - PullRequest
0 голосов
/ 21 января 2020

df

   Name
0  @#
1  R@#
2  ghj@#
3  Ray
4  *@+
5  Jack
6  Sara123#
7  ( 1234. )
8  Benjamin k 123
9  _
10 _!@#_
11 _#_&@+-
12 56#@!

Вывод:

 Bad_Name
0  @#
1  *@+
2  _
3  _!@#_
4  _#_&@+-

Мне нужно обнаружить специальный символ с помощью регулярного выражения. Если строка содержит какой-либо алфавит или число, то эта строка действительна, иначе она будет считаться неверной строкой. Я использовал '^ \ W * $' RE, все работало нормально, за исключением случаев, когда строка содержит '_' (подчеркивание), это не рассматривается как плохая строка.

1 Ответ

0 голосов
/ 21 января 2020

Использование pandas.Series.str.contains:

df[~df['Name'].str.contains('[a-z0-9]', False)]

Вывод:

       Name
0        @#
4       *@+
9         _
10    _!@#_
11  _#_&@+-
...