빅데이터 분석기사/작업 유형 1 (pd)

문자열 분리(split) - 주소 분리하기

유방울 2023. 5. 17. 13:26

문자열 엑세서 str 사용해 split() 메서드 사용 

str.split()

bread['소재지전체주소'].str.split()

0                   [광주광역시, 서구, 치평동, 1177-2번지, (106,107호)]
1                        [광주광역시, 서구, 유촌동, 868-1번지, (102호)]
2             [광주광역시, 서구, 화정동, 1611번지, 101호102호103호, 상가2동]
3                                [광주광역시, 북구, 운암동, 110-5번지]
4                            [광주광역시, 북구, 오치동, 578-4번지, 1층]

str.split().str[0] : 문자 분리하고 첫번째 인덱스 추출

# [4-8] bread 의 '소재지전체주소' 중 시/도에 대한 정보(목록)를 추출합니다.
# 광주광역시 부분만 필요함
# split은 그냥 사용 x -> str 엑세서와 함께 사용함
bread['소재지전체주소'].str.split().str[0]

0        광주광역시
1        광주광역시
2        광주광역시
3        광주광역시
4        광주광역시

조건 복잡할 경우 새로운 시리즈 만들기

시리즈 & 시리즈 : 괄호 생략 가능

(조건) & (조건) : 괄호 필수

# [4-9] bread에서 소재지전체주소의 처음이 '서울특별시'이면서,
# '업태구분명'이 '제과점영업'인 것만 추출합니다
con1 = bread['소재지전체주소'].str.split().str[0] == '서울특별시'
con2 = bread['업태구분명'] == '제과점영업'
bread = bread[con1 & con2]
bread.head(2)

문자열 분리 -> 첫번째 인덱스 추출 -> 이를 bread의 구명 칼럼 등록

# [4-11] bread의 '소재지전체주소'에서 '구명', '동명'을 추출하여 
# bread에 새로운 컬럼으로 등록합니다.
# way 1
bread['구명'] = bread['소재지전체주소'].str.split().str[1]
bread['동명'] = bread['소재지전체주소'].str.split().str[2]

여러개 뽑을 거면 분리해서 만들기

#way2 여러개 뽑을거면 더 추천!!
temp = bread['소재지전체주소'].str.split()
bread['구명'] = temp.str[1]
bread['동명'] = temp.str[2]

칼럼 확인

# bread의 컬럼명을 출력해 '구명', '동명'이 추가되었는지 확인함
bread.columns
Index(['인허가일자', '상세영업상태코드', '폐업일자', '소재지전체주소', '사업장명', '업태구분명', '구명', '동명'], dtype='object')