본문 바로가기

Pandas/실전

판다스 - 뉴욕 Airbnb 데이터 : 전처리, 정규표현식으로 필터링

반응형

데이터 출처

https://www.kaggle.com/dgomonov/new-york-city-airbnb-open-data 

 

 

 

 

데이터 불러오기

 

 

airbnb 데이터를 df 변수에 담았다.

 

 

 

 

 

 

 

데이터 살펴보기

 

 

컬럼은 총 16개로 다양하며 행은 총 48,895개로 나타난다.

 

 

 

 

 

자료형은 알맞게 구성되었으나 몇몇 컬럼에선 누락값이 있어 보인다.

 

 

 

 

컬럼별 누락값을 살펴보자

 

 

투숙객의 이름과 호스트의 이름 컬럼에서 누락값이 조금 보인다.

 

위 두개의 컬럼은 분석에 있어서 비중이 높으니 향후 에러 방지를 위해

 

누락값이 있는 행은 삭제하는 것이 좋아보인다.

 

 

 

 

 

 

누락값이 있는 행 제거

 

name컬럼과 host_name 컬럼의 누락값이 있는 행을 없애주자

 

 

리뷰 컬럼 외엔 누락값이 없어졌다.

 

 

 

 

 

 

import re

 

 

정규표현식 라이브러리를 import하고

 

전처리 완료한 df를 analysis_df 변수에 다시 담아주자

 

 

 

 

 

 

 

 

name 컬럼을 보면 &나 !같은 특수문자가 있다.

 

 

영어(대,소문자) 숫자 . , - # 공백

 

 

name 컬럼에서 위의 것들이 아닌 문자열이 있는 행을 제거하는 작업을 진행하자

 

 

 

re.compile과 search 이용

 

 

원하는 문자열이 아닌 문자열을 찾는 표현식을 complie을 이용해서 name_reg에 저장한다.

 

 

 

 

 

메타캐릭터와 행 필터에 대한 내용은 아래 포스팅 참조

 

https://steadiness-193.tistory.com/203

 

정규표현식 - re.sub : 원하는 문자만 남기고 제거하기

re.sub('찾을 패턴', '찾은 패턴을 변경할 내용', '원본') 주어진 문자열(찾을 패턴)에서 일치하는 모든 패턴을 (변경할 내용으로)바꾼다. 두번째 인자는 특정 문자열이거나 함수가 될 수도 있다. 메�

steadiness-193.tistory.com

https://steadiness-193.tistory.com/212

 

정규표현식 - 원하는 문자열만 있는 행만 남기기 : re.compile, re.search

데이터 불러오기 위 데이터프레임에서 한글, 영문(대/소문자), -, 공백 만 있는 행만 살려보자 re.compile 한글, 영문, 공백과 - 이 아닌 문자열을 찾는 표현식이다. 메타캐릭터에 대한 내용은 아래 ��

steadiness-193.tistory.com

 

 

 

 

 

 

예를 들어 첫번째 행의 name 컬럼에는 &가 있어서 match 걸려 나왔다.

 

즉, 원하지 않는 문자열이 존재하지 않아야만 True가 나오는 것이다.

 

 

 

 

이를 함수로 정의하고 name 컬럼에 apply 해보자

 

 

원하지 않는 문자열이 있는 행은 총 17,182개이며

 

 

 

위 조건으로 analysis_df를 다시 정의하면 

 

 

 

name 컬럼이 깔끔해진 31,676행의 데이터프레임을 만들 수 있다.

 

 

 

 

이제 위 데이터프레임을 가지고 분석을 해보자

반응형