카테고리 없음

pandas 를 이용한 일본 월세 부동산 정보 분석 - 2

꼰대코더 2025. 2. 18. 17:53

칼럼의 전처리

  • 주소(住所)로 부터 행정구역 도/현 시/구 칼럼을 신설
  • 건축연수(築年数)로 부터 문자를 숫자로 변환
  • 월세(家賃)를 문자열로 부터 수치 수치 엔 단위로 변환
  • 관리비(管理費)를 문자열로 부터 수치 엔 단위로 변환
  • 월세합계(家賃合計) 칼럼을 신설(家賃合計=월세(家賃)+ 관리비(管理費))
  • 월세단가(家賃単価) 를 신설(=월세합계(家賃合計)÷면적(面積))
  • 구조(間取り)로 부터 방수(部屋数) 칼럼을 신설
  • 입지( 立地 ) 1 2 3 을 노선(路線) 가까운역(最寄駅) 수단(手段) 시간(時間)으로 분해

 

1. 주소(住所)로 부터 행정구역 도/현 시/구 칼럼을 신설

住所 칼럼(series)의 값들을 apply 의 lambda 로 처리

정규표현( https://eldercoder.tistory.com/167 )의 [ ] 를 써서 안에 들어가는 한 문자라도 매치하면 분리를 시킨다.

처음 마주치는 都나 県은 앞쪽(0)을 취하고  市나 区는 반드시 都県 뒤에 따라오기 때문에 여러개 분리된 것 중에 두번째(1)를 취하면 된다.

 

2. 건축연수(築年数)로 부터 문자를 숫자로 변환

df['築年数'].unique()

array(['築5年', '築21年', '築14年', '築4年', '築16年', '新築', '築2年', '築17年', '築9年',
       '築11年', '築12年', '築7年', '築22年', '築18年', '築20年', '築33年', '築39年',
       '築36年', '築8年', '築23年', '築10年', '築46年', '築29年', '築35年', '築32年',
       '築3年', '築42年', '築38年', '築40年', '築41年', '築34年', '築19年', '築13年',
       '築15年', '築28年', '築6年', '築25年', '築31年', '築24年', '築1年', '築37年',
       '築26年', '築27年', '築44年', '築30年', '築43年', '築62年', '築61年', '築47年',
       '築49年', '築55年', '築48年', '築51年', '築56年', '築53年', '築52年', '築54年',
       '築50年', '築45年', '築60年', '築74年', '築65年', '築57年', '築0年', '築59年',
       '築58年', '築67年', '築97年', '築66年', '築64年', '築63年', '築69年', '築71年',
       '築72年', '築70年', '築81年'], dtype=object)

위를 보면 築 + 숫자 + 年 으로 구성되었다. 숫자만 남기고자 한다면
(1) strip( '築年' ) 으로 컷팅하는 방법

(2) apply(lambda x: re.sub(r'[^0~9]', '', x) 로 비숫자를 제거하는 정규표현을 이용하는 방법

 

3. 월세(賃料)를 문자열로 부터 수치 수치 엔 단위로 변환

 만엔(万円)단위로 저장되어 있기 때문에 万円을 제거한 후 float 형 적용 후 x 10000 하자.

 

4. 관리비(管理費)를 문자열로 부터 수치 엔 단위로 변환

 

5. 월세합계(家賃合計) 칼럼을 신설(家賃合計=월세(賃料)+ 관리비(管理費))

 

6. 월세단가(家賃単価(円/平米)) 를 신설(=월세합계(家賃合計)÷면적(面積))

 면적칼럼 값의 어미의 m2를 제거한 후 float 형으로 변환한 후 int 형으로 다시 변환( 바로 str -> int 하면 float 형으로 유지)

 

7. 구조(間取り)로 부터 방수(部屋数) 칼럼을 신설

 

 

 str.extract 를 이용하거나 apply 를 이용하면 OK

 

8. 입지( 立地 ) 1 2 3 을 노선(路線) 가까운역(最寄駅) 수단(手段) 시간(時間)으로 분해

'/' 나 '\s' (스페이스) 로 분리를 해서 칼럼이 3(n=2)개인 DataFrame 을 생성