Как выбрать строки с конкретными шаблонами строк в пандах? - PullRequest
2 голосов
/ 29 октября 2019

Я знаю, что мы можем использовать метод str.contains для выбора частичной строки.

Мой столбец похож на

col1
V2648   
V9174.
V9071
V0021;+
V7615***
()()
random
words

Я хочу выбрать все строки, содержащие шаблон, с помощью V+ 4 digits number. Поэтому нам нужно применить более одного условия к этим строкам.

Мой вывод будет таким, как

col1
V2648   
V9174.
V9071
V0021;+
V7615***

Ответы [ 2 ]

2 голосов
/ 29 октября 2019

Вы можете сделать:

mask = df.col1.str.startswith('V') & df.col1.str.contains('\d+')
print(df[mask])

Вывод

       col1
0     V2648
1    V9174.
2     V9071
3   V0021;+
4  V7615***

Маска df.col1.str.startswith('V') проверяет все, что начинается с проверок 'V' и df.col1.str.contains('\d+')все, что имеет 4 цифр. Если вы хотите точно указать V, за которым следуют 4 цифры, используйте:

mask = df.col1.str.contains('^V\d+')
1 голос
/ 29 октября 2019

str.match

df[df.col1.str.match('[V](\d{4})')]
Out[135]: 
       col1
0     V2648
1    V9174.
2     V9071
3   V0021;+
4  V7615***
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...