본문 바로가기
파이썬

파이썬(지역별소득통계프로그램)-2024-06-20

by 앵보몬 2024. 6. 20.
728x90
반응형

지역별 소득통계프로그램_심영보.pdf
0.09MB

 

import pandas as pd
import matplotlib.pyplot as plt

while True:
    print("============= 지역별 소득통계프로그램 =============")
    print("1. 지역별 1인당 지역내총생산 조회")
    print("2. 지역별 1인당 지역총소득 조회")
    print("3. 지역별 1인당 개인소득 조회")
    print("4. 지역별 1인당 민간소비 조회")
    print("5. 프로그램 종료")
    print("===========================================")
    choice = int(input("선택 : "))

    if choice == 1:
        filename = (r'D:\web\python_work\2024-06-19\지역내총생산.csv')
       
        # CSV 파일을 panda DataFrame으로 읽기
        df = pd.read_csv(filename, encoding='utf-8')
             
        # 사용자 입력 요청
        name = input("지역의 이름(시도별을 기준으로)을 입력해주세요 : ")
        name1 = input("지역의 이름(시도별을 기준으로)을 입력해주세요 : ")
       
        # 사용자 입력 이름을 기준으로 행 필터링
        # '시도별'를 CSV 파일의 올바른 열 이름으로 바꿉니다
        df_name = df[df['시도별'].str.contains(name)]
        df_name1 = df[df['시도별'].str.contains(name1)]
       
        # 선택한 열을 숫자로 변환(콤마 제거) 및 그림
        years = df.columns[1:].tolist()
        plt.style.use('ggplot')
        plt.figure(figsize=(10, 6))
   
        # 선택한 행을 숫자로 변환하고 오류를 무시하고 플롯변환
        plt.style.use('ggplot')
        # plt.figure(figsize=(10, 6))
        plt.rc('font', family = 'Malgun Gothic')
        plt.title(f'{name}와 {name1} 1인당 지역내총생산')
        plt.xlabel("기준년도")
        plt.ylabel("1인당 지역내총생산")
        plt.xticks([])
        plt.plot(years, pd.to_numeric(df_name.iloc[0, 1:].str.replace(',', ''), errors='coerce'), 'hotpink', label=f'{name}')
        plt.plot(years, pd.to_numeric(df_name1.iloc[0, 1:].str.replace(',', ''), errors='coerce'), 'skyblue', label=f'{name1}')
        plt.legend()
        plt.show()
   
   
    if choice == 2:
        filename = (r'D:\web\python_work\2024-06-19\지역총소득.csv')
       
        # CSV 파일을 panda DataFrame으로 읽기
        df = pd.read_csv(filename, encoding='utf-8')
             
        # 사용자 입력 요청
        name = input("지역의 이름(시도별을 기준으로)을 입력해주세요 : ")
        name1 = input("지역의 이름(시도별을 기준으로)을 입력해주세요 : ")
       
        # 사용자 입력 이름을 기준으로 행 필터링
        # '시도별'를 CSV 파일의 올바른 열 이름으로 바꿉니다
        df_name = df[df['시도별'].str.contains(name)]
        df_name1 = df[df['시도별'].str.contains(name1)]
       
        # 선택한 열을 숫자로 변환(콤마 제거) 및 그림
        years = df.columns[1:].tolist()
        plt.style.use('ggplot')
        plt.figure(figsize=(10, 6))
   
        # 선택한 행을 숫자로 변환하고 오류를 무시하고 플롯변환
        plt.rc('font', family = 'Malgun Gothic')
        plt.title(f'{name}와 {name1} 1인당 지역총소득')
        plt.xlabel("기준년도")
        plt.ylabel("1인당 지역총소득")
        plt.xticks([])
        plt.plot(years, pd.to_numeric(df_name.iloc[0, 1:].str.replace(',', ''), errors='coerce'), 'hotpink', label=f'{name}')
        plt.plot(years, pd.to_numeric(df_name1.iloc[0, 1:].str.replace(',', ''), errors='coerce'), 'skyblue', label=f'{name1}')
        plt.legend()
        plt.show()
   
    if choice == 3:
        filename = (r'D:\web\python_work\2024-06-19\개인소득.csv')
       
        # CSV 파일을 panda DataFrame으로 읽기
        df = pd.read_csv(filename, encoding='utf-8')
             
        # 사용자 입력 요청
        name = input("지역의 이름(시도별을 기준으로)을 입력해주세요 : ")
        name1 = input("지역의 이름(시도별을 기준으로)을 입력해주세요 : ")
       
        # 사용자 입력 이름을 기준으로 행 필터링
        # '시도별'를 CSV 파일의 올바른 열 이름으로 바꿉니다
        df_name = df[df['시도별'].str.contains(name)]
        df_name1 = df[df['시도별'].str.contains(name1)]
       
        # 선택한 열을 숫자로 변환(콤마 제거) 및 그림
        years = df.columns[1:].tolist()
        plt.style.use('ggplot')
        plt.figure(figsize=(10, 6))
   
        # 선택한 행을 숫자로 변환하고 오류를 무시하고 플롯변환
        plt.rc('font', family = 'Malgun Gothic')
        plt.title(f'{name}와 {name1} 1인당 개인소득')
        plt.xlabel("기준년도")
        plt.ylabel("1인당 개인소득")
        plt.xticks([])
        plt.plot(years, pd.to_numeric(df_name.iloc[0, 1:].str.replace(',', ''), errors='coerce'), 'hotpink', label=f'{name}')
        plt.plot(years, pd.to_numeric(df_name1.iloc[0, 1:].str.replace(',', ''), errors='coerce'), 'skyblue', label=f'{name1}')
        plt.legend()
        plt.show()
   
    if choice == 4:
        filename = (r'D:\web\python_work\2024-06-19\민간소비.csv')
           
        # CSV 파일을 panda DataFrame으로 읽기
        df = pd.read_csv(filename, encoding='utf-8')
               
        # 사용자 입력 요청
        name = input("지역의 이름(시도별을 기준으로)을 입력해주세요 : ")
        name1 = input("지역의 이름(시도별을 기준으로)을 입력해주세요 : ")
           
        # 사용자 입력 이름을 기준으로 행 필터링
        # '시도별'를 CSV 파일의 올바른 열 이름으로 바꿉니다
        df_name = df[df['시도별'].str.contains(name)]
        df_name1 = df[df['시도별'].str.contains(name1)]
           
        # 택한 열을 숫자로 변환(콤마 제거) 및 그림
        years = df.columns[1:].tolist()
        plt.style.use('ggplot')
        plt.figure(figsize=(10, 6))
   
        # 선택한 행을 숫자로 변환하고 오류를 무시하고 플롯변환
        plt.rc('font', family = 'Malgun Gothic')
        plt.title(f'{name}와 {name1} 1인당 민간소비')
        plt.xlabel("기준년도")
        plt.ylabel("1인당 민간소비")
        plt.xticks([])
        plt.plot(years, pd.to_numeric(df_name.iloc[0, 1:].str.replace(',', ''), errors='coerce'), 'hotpink', label=f'{name}')
        plt.plot(years, pd.to_numeric(df_name1.iloc[0, 1:].str.replace(',', ''), errors='coerce'), 'skyblue', label=f'{name1}')
        plt.legend()
        plt.show()
   
           
    elif choice == 5:
        print("프로그램을 종료합니다.")
        break
   
    else:
        print("잘못된 선택입니다. 다시 선택해주세요.")

 

민간소비.csv
0.00MB
지역내총생산.csv
0.01MB
지역총소득.csv
0.00MB
개인소득.csv
0.00MB

728x90
반응형