아파트 실거래가 Open_API
23 April 2020 -
9 mins read time
Tags:
Python
TIL
Open_API에서 원하는 정보를 가져와서 데이터프레임화 하는 과정을 진행해봤습니다.
데이터_소스:공공데이터 포털
위 사이트에서 활용신청을 하여 service_key를 받아야 진행 가능합니다.
아파트 실거래가 Open_API
import requests
import pandas as pd
import numpy as np
from bs4 import BeautifulSoup
from urllib.request import urlopen
def apt_info(ym,lawd_cd):
API_KEY = '본인이 받은 서비스키 '
url = 'http://openapi.molit.go.kr/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTradeDev'
url=url+"?&serviceKey="+API_KEY+"&pageNo=1"+"&numOfRows=1000"+"&LAWD_CD="+lawd_cd+"&DEAL_YMD="+ym
# webbrowser.open(url)
resultXML = urlopen(url)
result = resultXML.read()
xmlsoup = BeautifulSoup(result,'lxml-xml')
te = xmlsoup.findAll('item')
sil = pd.DataFrame()
count = 0
#te를 돌면서 필요한 부분을 돌면서 필요한 정보를 추출합니다.
for t in te:
deal_price = t.find("거래금액").text
build_y = t.find("건축년도").text
dong = t.find("법정동").text
apt_nm = t.find("아파트").text
size = t.find("전용면적").text
# jibun이 없는 경우도 있기 때문에 있으면 text를 가져오고 없으면 공백을 넣습니다.
try:
jibun=t.find("지번").text
except:
jibun=""
floor=t.find("층").text
#for문 안에서 임시적으로 정보를 담는 temp라는 데이터 프레임을 생성하고
temp = pd.DataFrame(([[build_y,dong,apt_nm,deal_price,size,jibun,floor]]), columns=["건축년도","법정동","아파트이름","거래금액","면적","지번","층수"])
#sill과 temp를 합쳐 temp에 있던 정보들을 sil에 저장한다고 생각하면 됩니다.
sil=pd.concat([sil,temp])
sil=sil.reset_index(drop=True)
return sil
df = apt_info('201909','11680')
df['거래금액'] = df['거래금액'].str.replace(',','')
df['거래금액'] = pd.to_numeric(df['거래금액'])
df['면적'] = pd.to_numeric(df['면적'])
a = df[['아파트이름','거래금액']].groupby('아파트이름').mean()
b = df[['법정동','아파트이름','거래금액','면적']].groupby(['법정동','아파트이름'],as_index=False).sum()
df1.rename(columns={'거래금액':'평균거래금액'},inplace=True)
df_final = pd.merge(b,df1,on='아파트이름',how='inner')
|
법정동 |
아파트이름 |
거래금액 |
면적 |
평균거래금액 |
0 |
개포동 |
개포주공 1단지 |
2114000 |
512.5100 |
211400 |
1 |
개포동 |
개포주공 3단지 |
165000 |
35.6400 |
165000 |
2 |
개포동 |
개포주공 5단지 |
195000 |
83.1700 |
195000 |
3 |
개포동 |
개포주공 6단지 |
492600 |
193.2800 |
164200 |
4 |
개포동 |
경남2차 |
257000 |
182.2000 |
257000 |
5 |
개포동 |
래미안블레스티지 |
487000 |
198.9100 |
243500 |
6 |
개포동 |
삼익대청아파트 |
222000 |
99.5300 |
111000 |
7 |
개포동 |
새롬(1164-13) |
58000 |
59.6700 |
58000 |
8 |
개포동 |
성원대치2단지아파트 |
351900 |
132.7200 |
87975 |
9 |
논현동 |
마일스디오빌 |
38700 |
36.2900 |
38700 |
10 |
논현동 |
쌍용 |
77000 |
59.9100 |
77000 |
11 |
논현동 |
이산 |
35000 |
62.1000 |
35000 |
12 |
대치동 |
대치아이파크 |
266000 |
114.9700 |
266000 |
13 |
대치동 |
대치현대 |
132000 |
59.8200 |
132000 |
14 |
대치동 |
동양 |
83500 |
98.7300 |
83500 |
15 |
대치동 |
래미안대치팰리스 |
279800 |
84.9700 |
279800 |
16 |
대치동 |
아름빌(889-74) |
29000 |
30.4600 |
29000 |
17 |
대치동 |
은마 |
178000 |
76.7900 |
178000 |
18 |
대치동 |
한티(933-0) |
101500 |
116.2100 |
101500 |
19 |
도곡동 |
도곡쌍용예가 |
185500 |
112.1300 |
185500 |
20 |
도곡동 |
우성4 |
269000 |
152.7400 |
269000 |
21 |
도곡동 |
우성캐릭터199 |
327500 |
297.9100 |
163750 |
22 |
도곡동 |
타워팰리스2 |
239000 |
160.1700 |
239000 |
23 |
도곡동 |
타워팰리스3 |
260000 |
163.5670 |
260000 |
24 |
도곡동 |
한신엠비씨 |
136500 |
84.7400 |
136500 |
25 |
삼성동 |
LG선릉에클라트(A) |
34000 |
36.1600 |
34000 |
26 |
삼성동 |
롯데캐슬프레미어 |
514000 |
315.2450 |
257000 |
27 |
삼성동 |
미켈란107 |
133000 |
83.0000 |
133000 |
28 |
삼성동 |
미켈란147 |
139000 |
83.6900 |
139000 |
29 |
삼성동 |
삼성동롯데아파트 |
130500 |
59.4000 |
130500 |
30 |
삼성동 |
삼성동힐스테이트 1단지 |
309000 |
115.6380 |
154500 |
31 |
삼성동 |
삼성파크 |
153000 |
107.3800 |
153000 |
32 |
삼성동 |
포스코트 |
180000 |
154.2400 |
180000 |
33 |
세곡동 |
강남엘에이치1단지 |
292800 |
194.5200 |
97600 |
34 |
수서동 |
강남데시앙포레 |
165000 |
101.8100 |
165000 |
35 |
수서동 |
까치마을 |
136000 |
68.8800 |
68000 |
36 |
신사동 |
로데오현대 |
159000 |
110.1600 |
79500 |
37 |
압구정동 |
한양6 |
230000 |
106.7100 |
230000 |
38 |
압구정동 |
현대14차(203,204,205,206동) |
250000 |
84.9800 |
250000 |
39 |
압구정동 |
현대7차(73~77,82,85동) |
349000 |
157.3600 |
349000 |
40 |
압구정동 |
현대8차(성수현대:91~95동) |
235000 |
111.5000 |
235000 |
41 |
역삼동 |
e-편한세상 |
362000 |
144.5970 |
181000 |
42 |
역삼동 |
강남서해더블루 |
91000 |
84.8000 |
91000 |
43 |
역삼동 |
강남역우정에쉐르 |
19800 |
17.1300 |
19800 |
44 |
역삼동 |
개나리래미안 |
198000 |
129.8000 |
198000 |
45 |
역삼동 |
금호어울림 |
264800 |
217.8300 |
132400 |
46 |
역삼동 |
대우디오빌 |
63000 |
59.5050 |
63000 |
47 |
역삼동 |
로얄빌리지 |
72000 |
80.6400 |
72000 |
48 |
역삼동 |
역삼디오슈페리움 |
61000 |
46.9000 |
61000 |
49 |
역삼동 |
역삼푸르지오 |
155000 |
59.8848 |
155000 |
50 |
역삼동 |
탑팰리스 |
85000 |
84.9700 |
85000 |
51 |
역삼동 |
한화진넥스빌 |
35000 |
39.2000 |
35000 |
52 |
일원동 |
래미안 개포 루체하임 |
390000 |
161.9600 |
195000 |
53 |
자곡동 |
래미안강남힐즈 |
147000 |
101.9400 |
147000 |
54 |
자곡동 |
래미안포레 |
136000 |
101.5100 |
136000 |
55 |
청담동 |
청담스위트 |
24000 |
13.4250 |
24000 |
56 |
청담동 |
청담자이 |
172000 |
49.6390 |
172000 |
57 |
청담동 |
휴먼스타빌 |
57000 |
35.9050 |
57000 |
df_final['단위금액'] = df_final['금액합계'] / df_final['면적합계']
df_final = df_final.rename(columns={'거래금액':'금액합계','면적':'면적합계'})
|
법정동 |
아파트이름 |
금액합계 |
면적합계 |
평균거래금액 |
단위금액 |
0 |
개포동 |
개포주공 1단지 |
1668000 |
412.3100 |
208500 |
4045.499745 |
1 |
개포동 |
개포주공 3단지 |
165000 |
35.6400 |
165000 |
4629.629630 |
2 |
개포동 |
개포주공 5단지 |
195000 |
83.1700 |
195000 |
2344.595407 |
3 |
개포동 |
개포주공 6단지 |
337300 |
133.1500 |
168650 |
2533.233196 |
4 |
개포동 |
경남2차 |
257000 |
182.2000 |
257000 |
1410.537870 |
5 |
개포동 |
래미안블레스티지 |
487000 |
198.9100 |
243500 |
2448.343472 |
6 |
개포동 |
삼익대청아파트 |
222000 |
99.5300 |
111000 |
2230.483271 |
7 |
개포동 |
새롬(1164-13) |
58000 |
59.6700 |
58000 |
972.012737 |
8 |
개포동 |
성원대치2단지아파트 |
351900 |
132.7200 |
87975 |
2651.446655 |
9 |
논현동 |
쌍용 |
77000 |
59.9100 |
77000 |
1285.261225 |
10 |
논현동 |
이산 |
35000 |
62.1000 |
35000 |
563.607085 |
11 |
대치동 |
대치아이파크 |
266000 |
114.9700 |
266000 |
2313.647038 |
12 |
대치동 |
대치현대 |
132000 |
59.8200 |
132000 |
2206.619860 |
13 |
대치동 |
동양 |
83500 |
98.7300 |
83500 |
845.740910 |
14 |
대치동 |
아름빌(889-74) |
29000 |
30.4600 |
29000 |
952.068286 |
15 |
대치동 |
은마 |
178000 |
76.7900 |
178000 |
2318.010158 |
16 |
대치동 |
한티(933-0) |
101500 |
116.2100 |
101500 |
873.418811 |
17 |
도곡동 |
도곡쌍용예가 |
185500 |
112.1300 |
185500 |
1654.329796 |
18 |
도곡동 |
우성4 |
269000 |
152.7400 |
269000 |
1761.162760 |
19 |
도곡동 |
우성캐릭터199 |
327500 |
297.9100 |
163750 |
1099.325300 |
20 |
도곡동 |
타워팰리스2 |
239000 |
160.1700 |
239000 |
1492.164575 |
21 |
도곡동 |
타워팰리스3 |
260000 |
163.5670 |
260000 |
1589.562687 |
22 |
도곡동 |
한신엠비씨 |
136500 |
84.7400 |
136500 |
1610.809535 |
23 |
삼성동 |
LG선릉에클라트(A) |
34000 |
36.1600 |
34000 |
940.265487 |
24 |
삼성동 |
롯데캐슬프레미어 |
514000 |
315.2450 |
257000 |
1630.477882 |
25 |
삼성동 |
미켈란107 |
133000 |
83.0000 |
133000 |
1602.409639 |
26 |
삼성동 |
미켈란147 |
139000 |
83.6900 |
139000 |
1660.891385 |
27 |
삼성동 |
삼성동롯데아파트 |
130500 |
59.4000 |
130500 |
2196.969697 |
28 |
삼성동 |
삼성동힐스테이트 1단지 |
309000 |
115.6380 |
154500 |
2672.131998 |
29 |
삼성동 |
삼성파크 |
153000 |
107.3800 |
153000 |
1424.846340 |
30 |
삼성동 |
포스코트 |
180000 |
154.2400 |
180000 |
1167.012448 |
31 |
세곡동 |
강남엘에이치1단지 |
196000 |
134.6300 |
98000 |
1455.841937 |
32 |
수서동 |
강남데시앙포레 |
165000 |
101.8100 |
165000 |
1620.665946 |
33 |
수서동 |
까치마을 |
136000 |
68.8800 |
68000 |
1974.448316 |
34 |
신사동 |
로데오현대 |
159000 |
110.1600 |
79500 |
1443.355120 |
35 |
압구정동 |
현대7차(73~77,82,85동) |
349000 |
157.3600 |
349000 |
2217.844433 |
36 |
역삼동 |
e-편한세상 |
362000 |
144.5970 |
181000 |
2503.509755 |
37 |
역삼동 |
강남역우정에쉐르 |
19800 |
17.1300 |
19800 |
1155.866900 |
38 |
역삼동 |
개나리래미안 |
198000 |
129.8000 |
198000 |
1525.423729 |
39 |
역삼동 |
금호어울림 |
264800 |
217.8300 |
132400 |
1215.626865 |
40 |
역삼동 |
대우디오빌 |
63000 |
59.5050 |
63000 |
1058.734560 |
41 |
역삼동 |
로얄빌리지 |
72000 |
80.6400 |
72000 |
892.857143 |
42 |
역삼동 |
역삼푸르지오 |
155000 |
59.8848 |
155000 |
2588.302875 |
43 |
역삼동 |
탑팰리스 |
85000 |
84.9700 |
85000 |
1000.353066 |
44 |
역삼동 |
한화진넥스빌 |
35000 |
39.2000 |
35000 |
892.857143 |
45 |
일원동 |
래미안 개포 루체하임 |
390000 |
161.9600 |
195000 |
2408.001976 |
46 |
자곡동 |
래미안강남힐즈 |
147000 |
101.9400 |
147000 |
1442.024720 |
47 |
자곡동 |
래미안포레 |
136000 |
101.5100 |
136000 |
1339.769481 |
48 |
청담동 |
청담자이 |
172000 |
49.6390 |
172000 |
3465.017426 |