편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2019.12.05

    파이썬 for문 연도별 반복 데이터프레임생성


    input으로 값을 입력받아서 연도별로 for문을 돌린 값이 데이터프레임에 저장되게 하고 싶습니다.

    2019년부터 10년간 반복하려하고

    2019년에 중년주택금액 --> 2009에서 2013평균 / 젊은주택가치-->2014에서 2019평균 / 중년주택가치-->두값 나눈것

    2018년은 2008~2012평균 / 2013~2018평균 / 두값 나눈것

    이런식으로 1년식 줄어든 값을 계산하고 싶습니다.

    path = r'C:\Users\admin\Desktop\Python\법정동코드_전체자료.xlsx'
    code_df=pd.read_excel(path)
    
    x=input('찾으실 주소를 입력하세요:') #한글로 입력하여 그에 대입하는 코드 찾음
    
    code_select_df = code_df[code_df['폐지여부'] == '존재']
    
    cod_sample_df = code_select_df[code_select_df['법정동명'] == x]
    
    cod_sample_df['법정동코드']
    
    cod = cod_sample_df['법정동코드']
    
    x=str(cod.iloc[0])
    
    x=x[0:5]  #긴 법정동코드 중 5자리만 필요
    
    y=int(input('기준연도를 입력하세요:')) 
    
    
    df_base= pd.DataFrame(columns=['연도','중년주택가치','젊은주택가격','중년주택가격'])
    
    for j in range(0,10):
    
        k=y-j
    
    
        price_df=get_year_realprice('x','str(k)')
        #중년주택 가치 산출 연도 입력
    
    
        temp=price_df['전용면적']
        price_df['전용면적']=pd.to_numeric(temp)
    
        temp = price_df['거래금액'].apply(lambda x: x.replace(',', '') )
        price_df['거래금액'] = pd.to_numeric(temp)
    
        price_df['평당단가'] = price_df['거래금액'] / price_df['전용면적'] / 3.3
    
        temp=price_df['건축년도']
        price_df['건축년도']=pd.to_numeric(temp)
    
    
        price_new_df = price_df[price_df['건축년도'] >=int(k)-4]
        #젋은 주택 기준 = 준공 후 5년이내 
    
        price_select_df = price_df[price_df['건축년도'] >= int(k)-9]
        price_old_df = price_select_df[price_select_df['건축년도']<= int(k)-5]
        #중년 주택 기준 = 준공 후 6~10년 이내
    
        old_price = np.mean(price_old_df['평당단가'])
        new_price = np.mean(price_new_df['평당단가'])
        mah_value=(old_price/new_price)
    
        df_base=df_base.append(pd.DataFrame([[str(k), mah_value, new_price, old_price]],columns=['연도','중년주택가치','젊은주택가격','중년주택가격']),ignore_index=True)
    df_base
    

    get_year_realprice는 위에 정의를 해놨는데 이 부분을 잘 작동하는것으로 나타납니다. (이미 존재하는 코드라 바로 가져다씀)

    def get_realprice(code, date):
    
        url = 'http://openapi.molit.go.kr:8081/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTrade'
        key = 'NfQ7K6WgSudMMtb8YT5AC3%2FrDhHvg%2BZupj%2Fy4fze4XxJ61XctYdvZEc5wNFrqargp5yLGQwRw7RY16eCAebIbg%3D%3D'
    
        real_url = url +'?'+ 'LAWD_CD={}&DEAL_YMD={}&serviceKey={}'.format(code, date, key)
    
    
        data = requests.get(real_url)
        data_bs = bs4.BeautifulSoup(data.text, 'lxml-xml')
        item_list = data_bs.find_all('item')
    
        거래금액리스트 = []
        건축년도리스트 = []
        년리스트 = []
        월리스트 = []
        일리스트 = []
        법정동리스트 = []
        아파트리스트 = []
        전용면적리스트 = []
        층리스트 = []
        지번리스트 = []
        지역코드리스트 = []
    
        for item in item_list:
            거래금액리스트.append(item.find('거래금액').text)
            건축년도리스트.append(item.find('건축년도').text)
            년리스트.append(item.find('년').text)
            월리스트.append(item.find('월').text)
            일리스트.append(item.find('일').text)
            법정동리스트.append(item.find('법정동').text)
            아파트리스트.append(item.find('아파트').text)
            전용면적리스트.append(item.find('전용면적').text)
            층리스트.append(item.find('층').text)
            지번리스트.append(item.find('지번').text)
            지역코드리스트.append(item.find('지역코드').text)
    
        result_df = pd.DataFrame({'거래금액':거래금액리스트,
                     '건축년도':건축년도리스트,'년':년리스트, '월':월리스트, '일':일리스트,
                     '법정동':법정동리스트, '아파트':아파트리스트,'전용면적':전용면적리스트,
                     '층':층리스트, '지번':지번리스트, '지역코드':지역코드리스트})
        return result_df
    
    def get_year_realprice(code, year):
    
        year_list = []
        for i in range(1, 13):
            if i < 10:
                temp_date = year + '0' + str(i)
            else:
                temp_date = year + str(i)
    
            year_list.append(get_realprice(code, temp_date))
    
        year_df = pd.concat(year_list)
        year_df = year_df.reset_index()
        del year_df['index']
        del year_df['법정동']
        del year_df['아파트']
        del year_df['층']
        del year_df['지번']
        del year_df['일']
        del year_df['지역코드']
    
        return year_df
    
    

    도와주시면 정말 감사하겠습니다!

  • 프로필 알 수 없는 사용자님의 편집
    날짜2019.12.05

    파이썬 for문 연도별 반복 데이터프레임생성


    input으로 값을 입력받아서 연도별로 for문을 돌린 값이 데이터프레임에 저장되게 하고 싶습니다.

    2019년부터 10년간 반복하려하고

    2019년에 중년주택금액 --> 2009에서 2013평균 / 젊은주택가치-->2014에서 2019평균 / 중년주택가치-->두값 나눈것

    2018년은 2008~2012평균 / 2013~2018평균 / 두값 나눈것

    이런식으로 1년식 줄어든 값을 계산하고 싶습니다.

    path = r'C:\Users\admin\Desktop\Python\법정동코드_전체자료.xlsx'
    code_df=pd.read_excel(path)
    
    x=input('찾으실 주소를 입력하세요:') #한글로 입력하여 그에 대입하는 코드 찾음
    
    code_select_df = code_df[code_df['폐지여부'] == '존재']
    
    cod_sample_df = code_select_df[code_select_df['법정동명'] == x]
    
    cod_sample_df['법정동코드']
    
    cod = cod_sample_df['법정동코드']
    
    x=str(cod.iloc[0])
    
    x=x[0:5]  #긴 법정동코드 중 5자리만 필요
    
    y=int(input('기준연도를 입력하세요:')) 
    
    
    df_base= pd.DataFrame(columns=['연도','중년주택가치','젊은주택가격','중년주택가격'])
    
    for j in range(0,10):
    
        k=y-j
    
    
        price_df=get_year_realprice('x','str(k)')
        #중년주택 가치 산출 연도 입력
    
    
        temp=price_df['전용면적']
        price_df['전용면적']=pd.to_numeric(temp)
    
        temp = price_df['거래금액'].apply(lambda x: x.replace(',', '') )
        price_df['거래금액'] = pd.to_numeric(temp)
    
        price_df['평당단가'] = price_df['거래금액'] / price_df['전용면적'] / 3.3
    
        temp=price_df['건축년도']
        price_df['건축년도']=pd.to_numeric(temp)
    
    
        price_new_df = price_df[price_df['건축년도'] >=int(k)-4]
        #젋은 주택 기준 = 준공 후 5년이내 
    
        price_select_df = price_df[price_df['건축년도'] >= int(k)-9]
        price_old_df = price_select_df[price_select_df['건축년도']<= int(k)-5]
        #중년 주택 기준 = 준공 후 6~10년 이내
    
        old_price = np.mean(price_old_df['평당단가'])
        new_price = np.mean(price_new_df['평당단가'])
        mah_value=(old_price/new_price)
    
        df_base=df_base.append(pd.DataFrame([[str(k), mah_value, new_price, old_price]],columns=['연도','중년주택가치','젊은주택가격','중년주택가격']),ignore_index=True)
    df_base
    

    get_year_realprice는 위에 정의를 해놨는데 이 부분을 잘 작동하는것으로 나타납니다. (이미 존재하는 코드라 바로 가져다씀)

    def get_realprice(code, date):

    url = 'http://openapi.molit.go.kr:8081/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTrade'
    key = 'NfQ7K6WgSudMMtb8YT5AC3%2FrDhHvg%2BZupj%2Fy4fze4XxJ61XctYdvZEc5wNFrqargp5yLGQwRw7RY16eCAebIbg%3D%3D'
    
    real_url = url +'?'+ 'LAWD_CD={}&DEAL_YMD={}&serviceKey={}'.format(code, date, key)
    
    
    data = requests.get(real_url)
    data_bs = bs4.BeautifulSoup(data.text, 'lxml-xml')
    item_list = data_bs.find_all('item')
    
    거래금액리스트 = []
    건축년도리스트 = []
    년리스트 = []
    월리스트 = []
    일리스트 = []
    법정동리스트 = []
    아파트리스트 = []
    전용면적리스트 = []
    층리스트 = []
    지번리스트 = []
    지역코드리스트 = []
    
    for item in item_list:
        거래금액리스트.append(item.find('거래금액').text)
        건축년도리스트.append(item.find('건축년도').text)
        년리스트.append(item.find('년').text)
        월리스트.append(item.find('월').text)
        일리스트.append(item.find('일').text)
        법정동리스트.append(item.find('법정동').text)
        아파트리스트.append(item.find('아파트').text)
        전용면적리스트.append(item.find('전용면적').text)
        층리스트.append(item.find('층').text)
        지번리스트.append(item.find('지번').text)
        지역코드리스트.append(item.find('지역코드').text)
    
    result_df = pd.DataFrame({'거래금액':거래금액리스트,
                 '건축년도':건축년도리스트,'년':년리스트, '월':월리스트, '일':일리스트,
                 '법정동':법정동리스트, '아파트':아파트리스트,'전용면적':전용면적리스트,
                 '층':층리스트, '지번':지번리스트, '지역코드':지역코드리스트})
    return result_df
    
    def get_year_realprice(code, year):
    
        year_list = []
        for i in range(1, 13):
            if i < 10:
                temp_date = year + '0' + str(i)
            else:
                temp_date = year + str(i)
    
            year_list.append(get_realprice(code, temp_date))
    
        year_df = pd.concat(year_list)
        year_df = year_df.reset_index()
        del year_df['index']
        del year_df['법정동']
        del year_df['아파트']
        del year_df['층']
        del year_df['지번']
        del year_df['일']
        del year_df['지역코드']
    
        return year_df
    
    

    도와주시면 정말 감사하겠습니다!ㅠㅠ

  • 프로필 정영훈님의 편집
    날짜2019.12.05

    파이썬 for문 연도별 반복 데이터프레임생성


    input으로 값을 입력받아서 연도별로 for문을 돌린 값이 데이터프레임에 저장되게 하고 싶습니다.

    2019년부터 10년간 반복하려하고

    2019년에 중년주택금액 --> 2009에서 2013평균 / 젊은주택가치-->2014에서 2019평균 / 중년주택가치-->두값 나눈것

    2018년은 2008~2012평균 / 2013~2018평균 / 두값 나눈것

    이런식으로 1년식 줄어든 값을 계산하고 싶습니다.

    x=input('찾으실 주소를 입력하세요:') #한글로 입력하여 그에 대입하는 코드 찾음
    
    code_select_df = code_df[code_df['폐지여부'] == '존재']
    
    cod_sample_df = code_select_df[code_select_df['법정동명'] == x]
    
    cod_sample_df['법정동코드']
    
    cod = cod_sample_df['법정동코드']
    
    x=str(cod.iloc[0])
    
    x=x[0:5]  #긴 법정동코드 중 5자리만 필요
    
    y=int(input('기준연도를 입력하세요:')) 
    
    
    df_base= pd.DataFrame(columns=['연도','중년주택가치','젊은주택가격','중년주택가격'])
    
    for j in range(0,10):
    
        k=y-j
    
    
        price_df=get_year_realprice('x','str(k)')
        #중년주택 가치 산출 연도 입력
    
    
        temp=price_df['전용면적']
        price_df['전용면적']=pd.to_numeric(temp)
    
        temp = price_df['거래금액'].apply(lambda x: x.replace(',', '') )
        price_df['거래금액'] = pd.to_numeric(temp)
    
        price_df['평당단가'] = price_df['거래금액'] / price_df['전용면적'] / 3.3
    
        temp=price_df['건축년도']
        price_df['건축년도']=pd.to_numeric(temp)
    
    
        price_new_df = price_df[price_df['건축년도'] >=int(k)-4]
        #젋은 주택 기준 = 준공 후 5년이내 
    
        price_select_df = price_df[price_df['건축년도'] >= int(k)-9]
        price_old_df = price_select_df[price_select_df['건축년도']<= int(k)-5]
        #중년 주택 기준 = 준공 후 6~10년 이내
    
        old_price = np.mean(price_old_df['평당단가'])
        new_price = np.mean(price_new_df['평당단가'])
        mah_value=(old_price/new_price)
    
        df_base=df_base.append(pd.DataFrame([[str(k), mah_value, new_price, old_price]],columns=['연도','중년주택가치','젊은주택가격','중년주택가격']),ignore_index=True)
    df_base
    

    get_year_realprice는 위에 정의를 해놨는데 이 부분을 잘 작동하는것으로 나타납니다. (이미 존재하는 코드라 바로 가져다씀)

    def get_year_realprice(code, year):
    
        year_list = []
        for i in range(1, 13):
            if i < 10:
                temp_date = year + '0' + str(i)
            else:
                temp_date = year + str(i)
    
            year_list.append(get_realprice(code, temp_date))
    
        year_df = pd.concat(year_list)
        year_df = year_df.reset_index()
        del year_df['index']
        del year_df['법정동']
        del year_df['아파트']
        del year_df['층']
        del year_df['지번']
        del year_df['일']
        del year_df['지역코드']
    
        return year_df
    
    

    도와주시면 정말 감사하겠습니다!ㅠㅠ

  • 프로필 알 수 없는 사용자님의 편집
    날짜2019.12.05

    파이썬 for문 연도별 반복 데이터프레임생성


    input으로 값을 입력받아서 연도별로 for문을 돌린 값이 데이터프레임에 저장되게 하고 싶습니다.

    2019년부터 10년간 반복하려하고

    2019년에 중년주택금액 --> 2009에서 2013평균 / 젊은주택가치-->2014에서 2019평균 / 중년주택가치-->두값 나눈것

    2018년은 2008~2012평균 / 2013~2018평균 / 두값 나눈것

    이런식으로 1년식 줄어든 값을 계산하고 싶습니다.

    x=input('찾으실 주소를 입력하세요:') #한글로 입력하여 그에 대입하는 코드 찾음

    code_select_df = code_df[code_df['폐지여부'] == '존재']

    cod_sample_df = code_select_df[code_select_df['법정동명'] == x]

    cod_sample_df['법정동코드']

    cod = cod_sample_df['법정동코드']

    x=str(cod.iloc[0])

    x=x[0:5] #긴 법정동코드 중 5자리만 필요

    y=int(input('기준연도를 입력하세요:'))

    df_base= pd.DataFrame(columns=['연도','중년주택가치','젊은주택가격','중년주택가격'])

    for j in range(0,10):

    k=y-j
    
    
    price_df=get_year_realprice('x','str(k)')
    #중년주택 가치 산출 연도 입력
    
    
    temp=price_df['전용면적']
    price_df['전용면적']=pd.to_numeric(temp)
    
    temp = price_df['거래금액'].apply(lambda x: x.replace(',', '') )
    price_df['거래금액'] = pd.to_numeric(temp)
    
    price_df['평당단가'] = price_df['거래금액'] / price_df['전용면적'] / 3.3
    
    temp=price_df['건축년도']
    price_df['건축년도']=pd.to_numeric(temp)
    
    
    price_new_df = price_df[price_df['건축년도'] >=int(k)-4]
    #젋은 주택 기준 = 준공 후 5년이내 
    
    price_select_df = price_df[price_df['건축년도'] >= int(k)-9]
    price_old_df = price_select_df[price_select_df['건축년도']<= int(k)-5]
    #중년 주택 기준 = 준공 후 6~10년 이내
    
    old_price = np.mean(price_old_df['평당단가'])
    new_price = np.mean(price_new_df['평당단가'])
    mah_value=(old_price/new_price)
    
    df_base=df_base.append(pd.DataFrame([[str(k), mah_value, new_price, old_price]],columns=['연도','중년주택가치','젊은주택가격','중년주택가격']),ignore_index=True)
    

    df_base

    get_year_realprice는 위에 정의를 해놨는데 이 부분을 잘 작동하는것으로 나타납니다. (이미 존재하는 코드라 바로 가져다씀)

    def get_year_realprice(code, year):

    year_list = []
    for i in range(1, 13):
        if i < 10:
            temp_date = year + '0' + str(i)
        else:
            temp_date = year + str(i)
    
        year_list.append(get_realprice(code, temp_date))
    
    year_df = pd.concat(year_list)
    year_df = year_df.reset_index()
    del year_df['index']
    del year_df['법정동']
    del year_df['아파트']
    del year_df['층']
    del year_df['지번']
    del year_df['일']
    del year_df['지역코드']
    
    return year_df
    

    도와주시면 정말 감사하겠습니다!ㅠㅠ