정규 표현식은 텍스트 내에서 문자열의 패턴을 찾기 위해 사용되는 일련의 문자와 특수문자의 조합
이를 통해 데이터를 검색하고, 대체하고, 추출하는 등 의 작업을 수행할 수 있습니다.
정규 표현식에서 특별한 의미를 갖는 문자들을 말한다
이들은 단순한 글자가 아니라, 데이터를 검색하고 패턴을 정의하는데 사용된다
특수 시퀸스는 정규 표현식에서 자주 사용되는 특정 패턴을 간단한 코드로 나타낼 때 사용된다
특수시퀸스의 경우 많아보일 수 있으나 \d가 숫자를, \s는 공백을, \w가 모든 문자를 의히한다면 대문자는 그 반대에 대해 일치한다고 외우면 된다!
예시
\d{2,4}는 숫자이면서 최소 2자리 최대4자리의 연속된 숫자와 일치
\S+는 문자열 Hello World!가 있을 때 공백이 아닌 문자가 1회 이상 연속되는 부분을 찾습니다. 따라서 Hello와 World!를 각각 별도로 찾아내어 일치
str.contains 메서드를 사용하여 법규위반 칼럼에 안전 값이 있으면 True, 아니면 False를 반환하고, 그 결과를 법규위반_안전 칼럼에 저장해주세요.
# '법규위반' 열에서 '안전' 단어가 포함된 경우 찾기
pattern = r'안전'
train['법규위반_안전'] = train['법규위반'].str.contains(pattern)
display(train.head(3))
str.replace 함수를 사용하여 도로형태 칼럼의 값에서 공백(\s), 하이픈(-), 공백(\s)을 포함한 이후의 모든 문자(.*)를 모두 제거('')하여, 각 값의 첫 번째 단어만 남겨보세요.
# '도로형태' 열에서 ' - ' 이후 문자열 제거
pattern = r'\s-\s.*'
train['도로형태_대분류'] = train['도로형태'].str.replace(pattern, '', regex=True)
display(train.head(3))
str.extract 메서드를 사용하여 시군구 칼럼에 '남구' 혹은 '달서구'가 존재할 경우 해당 값을 추출한 후 시군구특정 열에 저장해보세요.
시군구 열에 해당 값이 존재하지 않을 경우 시군구특정 칼럼의 값을 '기타'로 저장합니다.
pattern = r'(남구|달서구)'
# '남구' 또는 '달서구'를 추출하고, 해당되지 않는 경우 '기타'로 표시
train['시군구_특정'] = train['시군구'].str.extract(pattern)
train['시군구_특정'] = train['시군구_특정'].fillna('기타')
display(train.head(3))