У меня есть фрейм данных, в котором один столбец состоит из строк, которые имеют три шаблона:
1) Только заглавные буквы: APPLE COMPANY
2) Заглавные буквы и заканчиваются буквами AS: CAR COMPANY AS
3) Прописные и строчные буквы: John Smith
df = pd.DataFrame({'NAME': ['APPLE COMPANY', 'CAR COMPANY AS', 'John Smith']})
NAME ...
0 APPLE COMPANY ...
1 CAR COMPANY AS ...
2 John Smith ...
3 ... ...
Как я могу вынуть те строки, которые не отвечают условиям 2) и 3), т.е. 1)? Другими словами, как я могу извлечь строки, которые имеют только заглавные буквы, не заканчиваются на AS
или содержат в строке как верхние, так и нижние буквы?
Я придумал это:
df['NAME'].str.findall(r"(^[A-Z ':]+$)")
df['NAME'].str.findall('AS')
Первый извлекает строки только с верхними буквами, а второй находит только AS
. Если есть другие методы, кроме regex, я тоже буду рад попробовать.
Ожидаемый результат:
NAME ...
1 CAR COMPANY AS ...
2 John Smith ...
3 ... ...