국적별 외국인 방문객 통계와 라인 차트 그리기

목차

    2018. 7. 22. 06:00

    이전 포스팅에서 외국인 관광객 통계를 확인하는 방법에 대해서 알아보았다. (참조: 외국인 관광객 통계 데이터 확인하기)

    공공데이터 포탈과 서울시 열린데이터광장에서 다양한 외국인 관광객 통계 자료를 확인할 수 있었다. 그 중에 한 가지 종류의 데이터를 받고 차트를 그려보고자 한다. 

    오늘은 국적별 외국인 방문객 통계 데이터를 확인하고 라인 차트를 그려보도록 하겠다.



    제목



    추천포스트



    국적별 외국인 방문객 통계는 서울시 열린데이터 광장에서  확인할 수 있다. 


    서울시_열린데이터광장

    (서울시 열린데이터 광장 바로가기)



    가급적이면 Open API를 통해서 데이터를 받아 이후 자동화까지도 구현해보고 싶었으나, open api로는 일부 데이터만 받을 수 있었다. Open API로는 2017년 6월 데이터밖에 받을 수 없어, CSV로 데이터를 다운 받아 차트를 그리기로 하였다.


    CSV 파일로 다운 받고 아래와 같이 데이터를 불러오려고 했으나, 에러가 발생했다. 파일을 열어보니 CSV파일임에도 불구하고 Tab으로 구분을 한 것을 알 수 있었다.


    1
    2
    3
    4
    5
    # coding=utf-8
     
    import pandas as pd
     
    data = pd.read_csv("report.txt")
    cs


    그래서, delemeter를 tab으로 변경하여 다시 데이터를 불러왔다.


    1
    data = pd.read_csv("report.txt",delimiter="\t")
    cs


    이후에는 칼럼항목의 데이터가 지저분하게 들어있어 수정하고, 숫자가 문자로 돼 있어서 숫자로 수정하는 작업들을 하였다.

    실제 간단한(?) 라인 차트를 그리는 것은 1줄의 코드로 간단히 그릴 수 있었다.

    국적별_외국인관광객_통계

    (국적별 외국인 관광객 통계)



    한류 열풍이 불면서 한국을 찾는 외국인들이 많다는 것은 익히 알고 있었지만 숫자로 확인해 본 결과는 놀라웠다.


    2016년에 한국을 찾은 중국인이 약 800만명 정도 된다. 2015년 서울시 인구수가 986만명인데, 서울시에 해당하는 인구가 한국을 왔다 간 것이다. 그리고 2017년 싸드가 이슈가 되면서 반토막이 난 것을 알 수 있다. 관광객을 상대로 장사하시는 분들의 타격이 얼마나 컸을지 짐작해 볼 수 있는 숫자이다.


    기타에 해당하는 외국인 광광객이 가파르게 증가하고 있다. 아마도 동남아 국적의 외국인이 아닐까 추측해본다. 중국인의 관광객 증가와 유사한 트렌드를 보이는 것으로 보아 한류의 효과로 한국을 방문하는 것이 아닐까 싶다.


    일본인 관광객은 2012년을 기전으로 큰 폭으로 감소하였다. 이 시기는 이명박 전대통령의 독도방문과 일본 정부의 사과 발언 요구 등 한일관계가 악화되고 있는 시기였다. 중국도 그렇고 일본까지 국가 관계에 의해서 관광객수가 크게 왔다갔다함을 알 수 있다.
    (참조: 급격히 감소한 일본 관광객수에 관광사업 큰 타격, 코리아 헤럴드, 2013.4.22)


    한국을 찾는 미국인도 조금씩 증가하고 있다. 우리나라가 세계적으로 조금씩 알려지며 방문하는 광광객들이 늘어나는 것이 아닌가 싶다.



    오늘은 이렇게 국적별 외국인 방문객 통계에 대해서 알아보았다. 외국인 방문객에 대해서는 언론과 신문을 통해 자주 접할 수 있지만, 실제 숫자를 통해 규모를 확인해보니 더 실감나게 느낄 수 있었다. 서울시 열린데이터 광장은 다양한 데이터가 있어 좋지만, 많은 사람들이 사용할 수 있는 데이터임에도 불구하고 정제작업이 덜 된 것 같아 조금 아쉬웠다.



    국적별 외국인 방문객 통계가 필요하신 분들이 있을 것 같아 정제한 데이터를 업로드 해 본다. 필요한 분들은 가져다 사용하면 되겠다.


    국적별_외국인_관광객_통계_1996_2017.csv



    사회생활을 하는 데 있어서 신용등급을 잘 관리하는 것은 정말 중요하다. 신용등급은 돈과 연결되기 때문이다. 신용등급을 올리는 방법에 대해서 궁금하다면 아래 포스팅을 참조해보자.
    (참조: 신용등급 올리는 방법 알아보기)



    작성에 사용한 파이썬 코드도 참고로 첨부해본다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    # coding=utf-8
     
    import pandas as pd
    import matplotlib.pyplot as plt
     
    import matplotlib
    import matplotlib.font_manager as fm
     
     
    data = pd.read_csv("report.txt",delimiter="\t")
     
    """
    i="국적별외국인 관광객"
    """
     
    for i in data.columns:
     
        temp1=data[data.index == 1][i]
        temp1=temp1.reset_index(drop=True)
     
        temp=data[data.index==0][i]+"_"+temp1
     
     
        # data[i]=data[i].str.replace("...","0")
        data[i] = data[i].str.replace(",","")
        data[i] = data[i].str.replace(" """)
     
        data=data.rename(columns={i:temp[0]})
     
     
    data = data[2:]
    data = data.reset_index(drop=True)
     
    data = data.drop(["구분_구분","합계_계"],1)
     
     
    # 2006년까지는 남녀구별이 없음
    for i in data.columns:
        data[i] = data[i].str.replace("…""0")
        data[i] = data[i].astype(int)
     
    data["합계_계"]=data["일본_계"]+data["미국_계"]+data["중국_계"]+data["해외동포_계"]+data["기타_계"]
     
    # 한글 가능 폰트 불러오기
    fm.get_fontconfig_fonts()
    font_location = '/Library/Fonts/NanumBarunGothicBold.ttf'
    font_name = fm.FontProperties(fname=font_location).get_name()
    matplotlib.rc('font', family=font_name)
     
    plt.plot(data["기간_기간"],data[["일본_계","미국_계","중국_계","해외동포_계","기타_계"]],label=[["일본_계","미국_계","중국_계","해외동포_계","기타_계"]])
    data.plot("기간_기간",["일본_계","미국_계","중국_계","해외동포_계","기타_계"])
    # plt.minorticks_on()
    plt.xticks(data["기간_기간"])
    # plt.legend()
    plt.grid()
     
    data.to_csv("국적별_외국인_관광객_통계_1996_2017.csv")
     
    cs



    이 글 공유하기