serviceKey를 받았을때 만약 %3D%3D로 끝난다면 online tool을 이용해서 decode 작업이 필요하다 decode가 완료되었다면 아마도 나의 서비스 키는 ==로 끝날 것이다. 변경된 서비스 키를 다시 넣어서 요청하면 정상적으로 응답이 온다.

  • 아파트 단지를 검색하면 단지 주소, 좌표가 있었으면 좋겠다는 생각에 지도 관련 api를 제공하는 서비스를 찾아봤다.
  • NaverAPI와 kakaoAPI가 있었는데 쉽게 사용하는것은 kakaoAPI가 훠얼씬 편했다.
  • 네이버의 경우 NBP로 지도API가 넘어가면서 결재카드를 등록하는 등의 번거로운 작업이 굉장히 많다.
  • 반면 카카오는 사용하는게 매~우 편리했다. RestAPI 툴도 제공해서 바로 결과값도 확인이 가능
  • 네이버도 가능했을지 모르지만... 일단 회원가입하고 카드등록하라고해서 일단 패스
  • 나중에 정말 사용을 해야하는데 카카오에 기능이 없거나 요청에 제한이 생긴다면 네이버를 사용할지 몰라도 당장은....
  • 일단 네이버는 일에 요청수 제한이 있는데 카카오는 별 다른... 가이드가 없었다.
  • 네이버 지도 API
  • 카카오 지도 API

카카오 지도에서는 간단하게 테스트가 가능한데 아래에 키만 입력하면 조회가 가능하다

{
    "documents": [
        {
            "address_name": "경기 성남시 분당구 삼평동 681",
            "category_group_code": "",
            "category_group_name": "",
            "category_name": "서비스,산업 > 인터넷,IT > 포털서비스",
            "distance": "",
            "id": "18577297",
            "phone": "1899-1326",
            "place_name": "카카오 판교오피스",
            "place_url": "http://place.map.kakao.com/18577297",
            "road_address_name": "경기 성남시 분당구 판교역로 235",
            "x": "127.108212226945",
            "y": "37.4020560436306"
        },
        {
            "address_name": "제주특별자치도 제주시 영평동 2181",
            "category_group_code": "",
            "category_group_name": "",
            "category_name": "서비스,산업 > 인터넷,IT > 포털서비스",
            "distance": "",
            "id": "18059921",
            "phone": "1899-1326",
            "place_name": "카카오 스페이스닷원",
            "place_url": "http://place.map.kakao.com/18059921",
            "road_address_name": "제주특별자치도 제주시 첨단로 242",
            "x": "126.57066132748933",
            "y": "33.450677320070916"
        },
        {
            "address_name": "제주특별자치도 제주시 영평동 2184",
            "category_group_code": "",
            "category_group_name": "",
            "category_name": "서비스,산업 > 인터넷,IT > 포털서비스",
            "distance": "",
            "id": "22251293",
            "phone": "1899-1326",
            "place_name": "카카오 스페이스닷투",
            "place_url": "http://place.map.kakao.com/22251293",
            "road_address_name": "제주특별자치도 제주시 첨단로 216-19",
            "x": "126.570875463183",
            "y": "33.4526219140826"
        },
        {
            "address_name": "경기 성남시 분당구 백현동 541",
            "category_group_code": "",
            "category_group_name": "",
            "category_name": "가정,생활 > 문구,사무용품 > 디자인문구 > 카카오프렌즈",
            "distance": "",
            "id": "26944943",
            "phone": "031-5170-2451",
            "place_name": "카카오프렌즈 현대백화점판교점",
            "place_url": "http://place.map.kakao.com/26944943",
            "road_address_name": "경기 성남시 분당구 판교역로146번길 20",
            "x": "127.112385409653",
            "y": "37.392202184912"
        },
        {
            "address_name": "경기 성남시 분당구 삼평동 680",
            "category_group_code": "",
            "category_group_name": "",
            "category_name": "금융,보험 > 금융서비스 > 은행",
            "distance": "",
            "id": "27578089",
            "phone": "1599-3333",
            "place_name": "한국카카오은행",
            "place_url": "http://place.map.kakao.com/27578089",
            "road_address_name": "경기 성남시 분당구 판교역로 231",
            "x": "127.108644810967",
            "y": "37.4012843732024"
        },
        {
            "address_name": "경기 성남시 분당구 백현동 537",
            "category_group_code": "",
            "category_group_name": "",
            "category_name": "금융,보험 > 금융서비스",
            "distance": "",
            "id": "949394317",
            "phone": "1644-7405",
            "place_name": "카카오페이",
            "place_url": "http://place.map.kakao.com/949394317",
            "road_address_name": "경기 성남시 분당구 판교역로 152",
            "x": "127.110699049301",
            "y": "37.39426531392528"
        },
        {
            "address_name": "경기 성남시 분당구 삼평동 685",
            "category_group_code": "",
            "category_group_name": "",
            "category_name": "서비스,산업 > 전문대행 > 고객관리,TM",
            "distance": "",
            "id": "25824400",
            "phone": "",
            "place_name": "카카오 고객센터",
            "place_url": "http://place.map.kakao.com/25824400",
            "road_address_name": "경기 성남시 분당구 판교역로241번길 20",
            "x": "127.107372945892",
            "y": "37.4027632089203"
        },
        {
            "address_name": "경기 성남시 분당구 삼평동 672",
            "category_group_code": "",
            "category_group_name": "",
            "category_name": "서비스,산업 > 인터넷,IT > 소프트웨어",
            "distance": "",
            "id": "13556208",
            "phone": "1644-4755",
            "place_name": "카카오페이지",
            "place_url": "http://place.map.kakao.com/13556208",
            "road_address_name": "경기 성남시 분당구 판교역로 221",
            "x": "127.108996408808",
            "y": "37.4007470412071"
        },
        {
            "address_name": "경기 성남시 분당구 삼평동 633",
            "category_group_code": "",
            "category_group_name": "",
            "category_name": "스포츠,레저 > 골프",
            "distance": "",
            "id": "18858127",
            "phone": "1666-1538",
            "place_name": "카카오VX",
            "place_url": "http://place.map.kakao.com/18858127",
            "road_address_name": "경기 성남시 분당구 판교로228번길 17",
            "x": "127.10158226559571",
            "y": "37.400195010191624"
        },
        {
            "address_name": "경기 성남시 분당구 백현동 537",
            "category_group_code": "",
            "category_group_name": "",
            "category_name": "서비스,산업 > 기업",
            "distance": "",
            "id": "547176330",
            "phone": "",
            "place_name": "카카오모빌리티",
            "place_url": "http://place.map.kakao.com/547176330",
            "road_address_name": "경기 성남시 분당구 판교역로 152",
            "x": "127.1101250888609",
            "y": "37.39407843730005"
        },
        {
            "address_name": "경기 성남시 분당구 백현동 537",
            "category_group_code": "",
            "category_group_name": "",
            "category_name": "서비스,산업 > 인터넷,IT > 게임업체",
            "distance": "",
            "id": "24974641",
            "phone": "1566-8834",
            "place_name": "카카오게임즈",
            "place_url": "http://place.map.kakao.com/24974641",
            "road_address_name": "경기 성남시 분당구 판교역로 152",
            "x": "127.11016618280905",
            "y": "37.39437843929819"
        },
        {
            "address_name": "경기 성남시 분당구 삼평동 680",
            "category_group_code": "PS3",
            "category_group_name": "어린이집,유치원",
            "category_name": "교육,학문 > 유아교육 > 어린이집",
            "distance": "",
            "id": "26914389",
            "phone": "031-607-9993",
            "place_name": "늘예솔카카오판교어린이집",
            "place_url": "http://place.map.kakao.com/26914389",
            "road_address_name": "경기 성남시 분당구 판교역로 231",
            "x": "127.108879816692",
            "y": "37.401345426449"
        },
        {
            "address_name": "경기 성남시 분당구 삼평동 681",
            "category_group_code": "",
            "category_group_name": "",
            "category_name": "스포츠,레저 > 골프 > 골프연습장 > 스크린골프연습장",
            "distance": "",
            "id": "245183397",
            "phone": "031-778-6806",
            "place_name": "카카오VX 판교",
            "place_url": "http://place.map.kakao.com/245183397",
            "road_address_name": "경기 성남시 분당구 판교역로 235",
            "x": "127.108645940077",
            "y": "37.4020664581538"
        },
        {
            "address_name": "경기 성남시 분당구 삼평동 670",
            "category_group_code": "",
            "category_group_name": "",
            "category_name": "서비스,산업 > 기업",
            "distance": "",
            "id": "730664075",
            "phone": "",
            "place_name": "카카오커머스",
            "place_url": "http://place.map.kakao.com/730664075",
            "road_address_name": "경기 성남시 분당구 대왕판교로 660",
            "x": "127.10681400191869",
            "y": "37.40046431022458"
        },
        {
            "address_name": "경기 성남시 분당구 삼평동 681",
            "category_group_code": "",
            "category_group_name": "",
            "category_name": "교통,수송 > 자동차 > 전기자동차 충전소",
            "distance": "",
            "id": "679200161",
            "phone": "",
            "place_name": "판교H스퀘어 카카오판교사옥 전기차충전소",
            "place_url": "http://place.map.kakao.com/679200161",
            "road_address_name": "경기 성남시 분당구 판교역로 235",
            "x": "127.108616558231",
            "y": "37.4020547718792"
        }
    ],
    "meta": {
        "is_end": false,
        "pageable_count": 45,
        "same_name": {
            "keyword": "카카오",
            "region": [],
            "selected_region": ""
        },
        "total_count": 421
    }
}

공공데이터 포털에서 데이터를 가져와서 확인하는데 동일한 row가 있어서 확인을 해봤다.

185    2019-07-01    1995    2019    정자동    40000    정든마을(5단지)(신화)    7    0    8    69.93    192    41135    8    40000    572.000572    21.153858    60-85m2이하    2019-07-08
191    2019-07-01    1995    2019    정자동    40000    정든마을(5단지)(신화)    7    0    8    69.93    192    41135    8    40000    572.000572    21.153858    60-85m2이하    2019-07-08

해당 row를 보면 동일한 row가 두개가 있다! 가격이 동일하고 거래날짜도 동일한!!! 이런...
전처리가 반드시 필요하다.

부동산 데이터를 살펴보다 보니 층 데이터에 NaN이 있는게 아닌가.. 이게 어떤 값인지... 웃긴건 분당동 전체 112612개중에 달랑 3개만 NaN의 값이다.

date    건축년도    년    법정동    보증금액    아파트    월    월세금액    일    전용면적    지번    지역코드    층
124    201906    1992.0    2019.0    수내동    64,000    양지마을(5단지)(한양515-529)    6.0    0    29.0    84.9    24    41135.0    NaN
126    201906    1992.0    2019.0    수내동    64,000    양지마을(5단지)(한양515-529)    6.0    0    29.0    84.9    24    41135.0    NaN
128    201906    1992.0    2019.0    수내동    64,000    양지마을(5단지)(한양515-529)    6.0    0    29.0    84.9    24    41135.0    NaN

데이터의 신뢰도를 위해서 국토부에서 동일한 기간의 데이터를 받아봤더니 NaN의 값은 층 0층이다.

1516    경기도 성남분당구 수내동    24    0024    0000    양지마을(5단지)(한양515-529)    전세    84.9    201906    29    64,000    0    0    1992    내정로165번길 35
1517    경기도 성남분당구 수내동    24    0024    0000    양지마을(5단지)(한양515-529)    전세    84.9    201906    29    64,000    0    0    1992    내정로165번길 35
1518    경기도 성남분당구 수내동    24    0024    0000    양지마을(5단지)(한양515-529)    전세    84.9    201906    29    64,000    0    0    1992    내정로165번길 35

응? 0층이 어디에 있지.. 네이버 부동산 매물을 보아도 양지마을(5단지)에는 0층이 없다.

부동산 데이터는 국토부에서 가져올수가 있는데,
국토부 데이터는 하나씩 특정 조회를 통해서 가져올 수 있다.
내가 원하는 모든 데이터를 가져오기에는 매우 큰 노가다가 필요하다.

국토부 데이터 파싱하기

  • 국토부에서 특정조건으로 데이터를 다운로드
  • 아래와 같이 parsing이 가능하다.

국토부 데이터 결과는 아래와 같다.

시군구    번지    본번    부번    단지명    전월세구분    전용면적(㎡)    계약년월    계약일    보증금(만원)    월세(만원)    층    건축년도    도로명
0    경기도 성남분당구 구미동    77    0077    0000    까치마을(1단지)(대우롯데선경)    전세    84.79    201905    2    53,000    0    10    1995    미금로 184
1    경기도 성남분당구 구미동    77    0077    0000    까치마을(1단지)(대우롯데선경)    전세    51.32    201905    3    29,000    0    1    1995    미금로 184
2    경기도 성남분당구 구미동    77    0077    0000    까치마을(1단지)(대우롯데선경)    월세    51.32    201905    6    12,000    60    4    1995    미금로 184

공공데이터에서 API를 통한 호출

  • opendata는 API를 제공하고 있어 serviceKey를 발급받고 아래와 같이 조회하면 된다.
  • 파라미터로 사용하는 값은 월데이터 ex: 201901법정동코드이다.
  • 이때 하나의 팁은 numOfRows의 값을 9999로 넘겨주면!? 한번의 요청으로 모든 결과를 가져올수 있다.
  • 이렇게 해야하는 이유는 요청 제한이 있기 때문이다.

공공데이터의 결과는 아래와 같다.

건축년도    년    법정동    보증금액    아파트    월    월세금액    일    전용면적    지번    지역코드    층
0    1992    2019    분당동    30,000    샛별마을(동성)    5    0    1    59.4    35    41135    5
1    1993    2019    분당동    35,000    장안타운(건영)    5    0    1    67.73    66    41135    9
2    1993    2019    분당동    26,500    장안타운(건영)    5    0    1    53.72    66    41135    1

부동산 실거래가를 공공데이터에서 제공하는 API로 다운로드를 받았는데 그럴 필요가 없다는 사실을 알아서 충격이였다. 

 



국토교통부에서 실거래가 공개시스템이 있는데 기간을 설정하면 특정날짜에 실거래가 데이터를 다운로드 받을 수 있다. 실제로 다운로드 받은 데이터와 API를 통해 다운로드 받은 데이터의 개수가 다른것을 확인하니 어디 쪽을 믿어야 하나... 일단 데이터를 다운로드 받고 나서 아래와 같이 파일을 읽으면 된다. 맥에서는 encoding을 `cp949`로 해줘야 한다는것! 처음 header를 찾는 곳을 똑똑하게 할 수 있겠지만 그닥 중요하지 않으니... 아래 코드를 

f = open("/Users/Direcision/Desktop/아파트(매매)__실거래가_20191211233713.csv","r", encoding='cp949')
lines = f.readlines()
cols = lines[15][:-1]
cols = cols.split("\"")
cols = list(filter(lambda x: (x != '') & (x != ',') ,cols))

data = lines[16:]
rows = []
for d in data:
    d = d[:-1].split("\"")
    d = list(filter(lambda x: (x != '') & (x != ',') ,d))
    rows.append(d)
    
 df = pd.DataFrame(rows, columns=cols)

https://doubly12f.tistory.com/85

 

분양가 상한제에 대한 영상을 보고 (+정부의 부동산 정책)

https://land.naver.com/news/magazineView.nhn?arti_seq=86788419 [네이버TV] 분양가 상한제 이후 전국 부동산 시장 전망 분양가 상한제 이후 전국 부동산 시장 전망 land.naver.com 네이버에 이런 영상이 있는지..

doubly12f.tistory.com

의 영상을 보니 주택거래량이 줄어들고 있다고 얘기를 하고 있다. 정말 집값은 오르는데 실제로 거래가 안되고 있을까? 유투브에서도 많은 유투버들이 집가격은 오르고 있는데 거래가 되고 있지 않다고 말한다. 어느정도 거래가 이루어졌고 올해 2019년에는 정말 거래가 많이 이루어지지 않았는지 확인을 해보자! 생각해보니 아파트 실거래 데이터가 분양받은것도 포함이 되어있나?.. 연도별 아파트 공급 물량도 확인해보면 좋을것 같다.

서울특별시 연도별 거래량을 살펴보면 아래와 같다.

년도 거래량
2016 110,222
2017 105,091
2018 81,392,
2019 52,125

약간의 누락이 있어보이긴하지만 편차가 그렇게 크지 않다... 지금 http://rtdown.molit.go.kr/ 의 사이트에서 다운받아서 살펴보니 약간의 누락이 있었다! 역시 데이터는 수집도 중요하지만 유효성 체크가 중요하다!!! 어쨋든

2016년에 비해서 2019년은 절반의 거래량이 발생했고, 2018년인 작년과 비교해도 약 36%가 줄어들었다. 집값만 오르고 정말 부동산 시장은 얼었다는 말이다. 이 빙판에서 누가 넘어지지 않느냐의 싸움이 아닌가 싶다. 

2016년에 중계사 분들은 돈을 참 많이 벌었겠다!!!!!!!!!! 하지만 올해는... 

 

 

+ Recent posts