Удаление строк с цифрами и строками в панде - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь удалить строки, в которых есть только цифры или только символы.Например, ниже приведен пример столбца данных pandas:

col1:

business
served business
02446681
C96305407PLA
P0116711

В моих результатах мне понадобятся следующие значения, потому что первая и вторая строки содержат только символы, а третья строка состоит из цифр.

col1:

C96305407PLA
P0116711

Любые предложения будут оценены !!

Ответы [ 3 ]

0 голосов
/ 10 октября 2018

Использование двух str.contains

df[df.business.str.contains('\d+')&df.business.str.contains('[A-Za-z]')]
Out[48]: 
       business
2  C96305407PLA
3      P0116711
0 голосов
/ 10 октября 2018

Использование pandas.Series.str.contains с регулярным выражением

Упрощенное регулярное выражение, но допускается строка с '123 456', поскольку и '3 ', и ' 4' удовлетворяют шаблону.

df[df.col1.str.contains('\d\D|\D\d')]

           col1
3  C96305407PLA
4      P0116711

Это устраняет недостаток приведенного выше регулярного выражения, явно заставляя шаблон совпадать только в том случае, если найдена либо цифра / альфа, либо альфа / цифра.

df[df.col1.str.contains('(?i)\d[a-z]|[a-z]\d')]

           col1
3  C96305407PLA
4      P0116711
0 голосов
/ 10 октября 2018

str.extract и удалить ненужные строки.

df['col1'].str.extract('([A-Za-z]+\d+)', expand = False).dropna()

3    C96305407
4     P0116711
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...