📙코로나 바이러스(COVID-19)의 영향으로 중국인 관광객이 얼마나 줄었을까?
💡외국인 관광객 수에 대한 데이터를 가공하여 시계열 그래프로 시각화해보고, 이를 통해 정보를 읽을 줄 아는 인사이트 능력을 길러보자.
1 데이터 불러오기 및 전처리
1.1 불러올 데이터의 형태 파악 & 1.2 파이썬에서 엑셀 데이터 불러오기
<엑셀 파일 상단>
<엑셀 파일 하단>
- 첫번째 로우는 해당 데이터가 어느 시점의 어떤 데이터인지 서술되어 있으며, 데이터 분석 시 사용하지 않으므로 데이터를 불러올 때 제외한다.
- 두번째 로우에 총 10개의 컬럼이 순서대로 나열되어 있다.
- 2-69 로우에는 대륙/국가별 관광객 수 데이터가 있으며, 70-73번째 로우에는 계, 전년 동기 등 데이터의 요약 정보로 구성되어 있다. 이 경우도 분석 시 필요하지 않으므로 데이터 불러올 때에 제외한다.
import warnings
warnings.filterwarnings('ignore')
import pandas as pd
kto_201901 = pd.read_excel('./files/kto_201901.xlsx',
header=1,
usecols='A:G',
skipfooter=4)
kto_201901.head()
|
국적 |
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
0 |
아시아주 |
765082 |
10837 |
1423 |
14087 |
125521 |
916950 |
1 |
일본 |
198805 |
2233 |
127 |
785 |
4576 |
206526 |
2 |
대만 |
86393 |
74 |
22 |
180 |
1285 |
87954 |
3 |
홍콩 |
34653 |
59 |
2 |
90 |
1092 |
35896 |
4 |
마카오 |
2506 |
2 |
0 |
17 |
45 |
2570 |
kto_201901.tail()
|
국적 |
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
62 |
아프리카 기타 |
768 |
718 |
90 |
206 |
908 |
2690 |
63 |
기타대륙 |
33 |
4 |
0 |
1 |
16 |
54 |
64 |
국적미상 |
33 |
4 |
0 |
1 |
16 |
54 |
65 |
교포소계 |
0 |
0 |
0 |
0 |
15526 |
15526 |
66 |
교포 |
0 |
0 |
0 |
0 |
15526 |
15526 |
1.3. 데이터 전처리 하기
kto_201901.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 67 entries, 0 to 66
Data columns (total 7 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 국적 67 non-null object
1 관광 67 non-null int64
2 상용 67 non-null int64
3 공용 67 non-null int64
4 유학/연수 67 non-null int64
5 기타 67 non-null int64
6 계 67 non-null int64
dtypes: int64(6), object(1)
memory usage: 3.8+ KB
kto_201901.describe()
|
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
count |
67.00000 |
67.000000 |
67.000000 |
67.000000 |
67.000000 |
67.000000 |
mean |
26396.80597 |
408.208955 |
132.507463 |
477.462687 |
5564.208955 |
32979.194030 |
std |
102954.04969 |
1416.040302 |
474.406339 |
2009.484800 |
17209.438418 |
122821.369969 |
min |
0.00000 |
0.000000 |
0.000000 |
0.000000 |
16.000000 |
54.000000 |
25% |
505.00000 |
14.500000 |
2.500000 |
17.500000 |
260.000000 |
927.000000 |
50% |
1304.00000 |
45.000000 |
14.000000 |
43.000000 |
912.000000 |
2695.000000 |
75% |
8365.00000 |
176.500000 |
38.000000 |
182.000000 |
2824.500000 |
14905.500000 |
max |
765082.00000 |
10837.000000 |
2657.000000 |
14087.000000 |
125521.000000 |
916950.000000 |
평균적으로 '관광'목적 외국인 입국이 가장 많으며, 다음으로는 기타, 유학/연수. 상용, 공용 순으로 나타난다.
condition = (kto_201901['관광'] == 0) \
|(kto_201901['상용'] == 0) \
| (kto_201901['공용'] == 0) \
| (kto_201901['유학/연수'] == 0)
kto_201901[condition]
|
국적 |
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
4 |
마카오 |
2506 |
2 |
0 |
17 |
45 |
2570 |
20 |
이스라엘 |
727 |
12 |
0 |
9 |
57 |
805 |
22 |
우즈베키스탄 |
1958 |
561 |
0 |
407 |
2828 |
5754 |
38 |
스위스 |
613 |
18 |
0 |
19 |
97 |
747 |
45 |
그리스 |
481 |
17 |
4 |
0 |
273 |
775 |
46 |
포르투갈 |
416 |
14 |
0 |
13 |
121 |
564 |
51 |
크로아티아 |
226 |
12 |
0 |
3 |
250 |
491 |
54 |
폴란드 |
713 |
10 |
0 |
27 |
574 |
1324 |
59 |
대양주 기타 |
555 |
3 |
4 |
0 |
52 |
614 |
63 |
기타대륙 |
33 |
4 |
0 |
1 |
16 |
54 |
64 |
국적미상 |
33 |
4 |
0 |
1 |
16 |
54 |
65 |
교포소계 |
0 |
0 |
0 |
0 |
15526 |
15526 |
66 |
교포 |
0 |
0 |
0 |
0 |
15526 |
15526 |
| (or) 조건을 이용해 4가지 목적 중 한가지라도 입국객수가 0인 국적으로 필터링하여 확인.\
교포소계, 교포의 경우 기타목적을 분류되어 있어 위의 4개 컬럼 모두 '0'으로 나온다.
\
현재 활용할 데이터는 2019년1월 데이터로, 2020년 5월까지의 데이터를 활용할 예정이기 때문에 기준년월 정보를 추가해준다.
kto_201901['기준년월'] = '2019-01'
kto_201901.head()
|
국적 |
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
기준년월 |
0 |
아시아주 |
765082 |
10837 |
1423 |
14087 |
125521 |
916950 |
2019-01 |
1 |
일본 |
198805 |
2233 |
127 |
785 |
4576 |
206526 |
2019-01 |
2 |
대만 |
86393 |
74 |
22 |
180 |
1285 |
87954 |
2019-01 |
3 |
홍콩 |
34653 |
59 |
2 |
90 |
1092 |
35896 |
2019-01 |
4 |
마카오 |
2506 |
2 |
0 |
17 |
45 |
2570 |
2019-01 |
kto_201901['국적'].unique()
array(['아시아주', '일본', '대만', '홍콩', '마카오', '태국', '말레이시아', '필리핀', '인도네시아',
'싱가포르', '미얀마', '베트남', '인도', '스리랑카', '파키스탄', '방글라데시', '캄보디아', '몽골',
'중국', '이란', '이스라엘', '터키', '우즈베키스탄', '카자흐스탄', 'GCC', '아시아 기타', '미주',
'미국', '캐나다', '멕시코', '브라질', '미주 기타', '구주', '영국', '독일', '프랑스',
'네덜란드', '스웨덴', '스위스', '이탈리아', '덴마크', '노르웨이', '벨기에', '오스트리아', '스페인',
'그리스', '포르투갈', '핀란드', '아일랜드', '우크라이나', '러시아', '크로아티아', '루마니아',
'불가리아', '폴란드', '구주 기타', '대양주', '오스트레일리아', '뉴질랜드', '대양주 기타',
'아프리카주', '남아프리카공화국', '아프리카 기타', '기타대륙', '국적미상', '교포소계', '교포'],
dtype=object)
continents_list = ['아시아주', '미주', '구주', '대양주', '아프리카주', '기타대륙', '교포소계']
continents_list
['아시아주', '미주', '구주', '대양주', '아프리카주', '기타대륙', '교포소계']
condition = (kto_201901.국적.isin(continents_list) == False)
kto_201901_country = kto_201901[condition]
kto_201901_country['국적'].unique()
array(['일본', '대만', '홍콩', '마카오', '태국', '말레이시아', '필리핀', '인도네시아', '싱가포르',
'미얀마', '베트남', '인도', '스리랑카', '파키스탄', '방글라데시', '캄보디아', '몽골', '중국',
'이란', '이스라엘', '터키', '우즈베키스탄', '카자흐스탄', 'GCC', '아시아 기타', '미국',
'캐나다', '멕시코', '브라질', '미주 기타', '영국', '독일', '프랑스', '네덜란드', '스웨덴',
'스위스', '이탈리아', '덴마크', '노르웨이', '벨기에', '오스트리아', '스페인', '그리스', '포르투갈',
'핀란드', '아일랜드', '우크라이나', '러시아', '크로아티아', '루마니아', '불가리아', '폴란드',
'구주 기타', '오스트레일리아', '뉴질랜드', '대양주 기타', '남아프리카공화국', '아프리카 기타',
'국적미상', '교포'], dtype=object)
kto_201901_country.head()
|
국적 |
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
기준년월 |
1 |
일본 |
198805 |
2233 |
127 |
785 |
4576 |
206526 |
2019-01 |
2 |
대만 |
86393 |
74 |
22 |
180 |
1285 |
87954 |
2019-01 |
3 |
홍콩 |
34653 |
59 |
2 |
90 |
1092 |
35896 |
2019-01 |
4 |
마카오 |
2506 |
2 |
0 |
17 |
45 |
2570 |
2019-01 |
5 |
태국 |
34004 |
37 |
199 |
96 |
6998 |
41334 |
2019-01 |
kto_201901_country_newindex = kto_201901_country.reset_index(drop=True)
kto_201901_country_newindex.head()
|
국적 |
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
기준년월 |
0 |
일본 |
198805 |
2233 |
127 |
785 |
4576 |
206526 |
2019-01 |
1 |
대만 |
86393 |
74 |
22 |
180 |
1285 |
87954 |
2019-01 |
2 |
홍콩 |
34653 |
59 |
2 |
90 |
1092 |
35896 |
2019-01 |
3 |
마카오 |
2506 |
2 |
0 |
17 |
45 |
2570 |
2019-01 |
4 |
태국 |
34004 |
37 |
199 |
96 |
6998 |
41334 |
2019-01 |
continents = ['아시아']*25 + ['아메리카']*5 + ['유럽']*23 + ['오세아니아']*3 \
+ ['아프리카']*2 + ['기타대륙'] + ['교포']
print(continents)
['아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아시아', '아메리카', '아메리카', '아메리카', '아메리카', '아메리카', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '유럽', '오세아니아', '오세아니아', '오세아니아', '아프리카', '아프리카', '기타대륙', '교포']
kto_201901_country_newindex['대륙'] = continents
kto_201901_country_newindex.head()
|
국적 |
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
기준년월 |
대륙 |
0 |
일본 |
198805 |
2233 |
127 |
785 |
4576 |
206526 |
2019-01 |
아시아 |
1 |
대만 |
86393 |
74 |
22 |
180 |
1285 |
87954 |
2019-01 |
아시아 |
2 |
홍콩 |
34653 |
59 |
2 |
90 |
1092 |
35896 |
2019-01 |
아시아 |
3 |
마카오 |
2506 |
2 |
0 |
17 |
45 |
2570 |
2019-01 |
아시아 |
4 |
태국 |
34004 |
37 |
199 |
96 |
6998 |
41334 |
2019-01 |
아시아 |
kto_201901_country_newindex.tail()
|
국적 |
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
기준년월 |
대륙 |
55 |
대양주 기타 |
555 |
3 |
4 |
0 |
52 |
614 |
2019-01 |
오세아니아 |
56 |
남아프리카공화국 |
368 |
9 |
1 |
6 |
616 |
1000 |
2019-01 |
아프리카 |
57 |
아프리카 기타 |
768 |
718 |
90 |
206 |
908 |
2690 |
2019-01 |
아프리카 |
58 |
국적미상 |
33 |
4 |
0 |
1 |
16 |
54 |
2019-01 |
기타대륙 |
59 |
교포 |
0 |
0 |
0 |
0 |
15526 |
15526 |
2019-01 |
교포 |
kto_201901_country_newindex['관광객비율(%)'] = \
round(kto_201901_country_newindex['관광'] / kto_201901_country_newindex['계'] * 100, 1)
kto_201901_country_newindex.head()
|
국적 |
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
기준년월 |
대륙 |
관광객비율(%) |
0 |
일본 |
198805 |
2233 |
127 |
785 |
4576 |
206526 |
2019-01 |
아시아 |
96.3 |
1 |
대만 |
86393 |
74 |
22 |
180 |
1285 |
87954 |
2019-01 |
아시아 |
98.2 |
2 |
홍콩 |
34653 |
59 |
2 |
90 |
1092 |
35896 |
2019-01 |
아시아 |
96.5 |
3 |
마카오 |
2506 |
2 |
0 |
17 |
45 |
2570 |
2019-01 |
아시아 |
97.5 |
4 |
태국 |
34004 |
37 |
199 |
96 |
6998 |
41334 |
2019-01 |
아시아 |
82.3 |
kto_201901_country_newindex.sort_values(by='관광객비율(%)', ascending=False).head()
|
국적 |
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
기준년월 |
대륙 |
관광객비율(%) |
1 |
대만 |
86393 |
74 |
22 |
180 |
1285 |
87954 |
2019-01 |
아시아 |
98.2 |
3 |
마카오 |
2506 |
2 |
0 |
17 |
45 |
2570 |
2019-01 |
아시아 |
97.5 |
2 |
홍콩 |
34653 |
59 |
2 |
90 |
1092 |
35896 |
2019-01 |
아시아 |
96.5 |
0 |
일본 |
198805 |
2233 |
127 |
785 |
4576 |
206526 |
2019-01 |
아시아 |
96.3 |
55 |
대양주 기타 |
555 |
3 |
4 |
0 |
52 |
614 |
2019-01 |
오세아니아 |
90.4 |
kto_201901_country_newindex.sort_values(by='관광객비율(%)', ascending=True).head()
|
국적 |
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
기준년월 |
대륙 |
관광객비율(%) |
59 |
교포 |
0 |
0 |
0 |
0 |
15526 |
15526 |
2019-01 |
교포 |
0.0 |
14 |
방글라데시 |
149 |
126 |
27 |
97 |
848 |
1247 |
2019-01 |
아시아 |
11.9 |
12 |
스리랑카 |
157 |
54 |
5 |
28 |
1043 |
1287 |
2019-01 |
아시아 |
12.2 |
13 |
파키스탄 |
238 |
178 |
10 |
193 |
413 |
1032 |
2019-01 |
아시아 |
23.1 |
15 |
캄보디아 |
635 |
39 |
55 |
51 |
1915 |
2695 |
2019-01 |
아시아 |
23.6 |
kto_201901_country_newindex.pivot_table(values = '관광객비율(%)',
index = '대륙',
aggfunc = 'mean')
|
관광객비율(%) |
대륙 |
|
교포 |
0.000000 |
기타대륙 |
61.100000 |
아메리카 |
68.200000 |
아시아 |
59.624000 |
아프리카 |
32.700000 |
오세아니아 |
84.833333 |
유럽 |
63.826087 |
condition = (kto_201901_country_newindex['국적'] == '중국')
kto_201901_country_newindex[condition]
|
국적 |
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
기준년월 |
대륙 |
관광객비율(%) |
17 |
중국 |
320113 |
2993 |
138 |
8793 |
60777 |
392814 |
2019-01 |
아시아 |
81.5 |
tourist_sum = sum(kto_201901_country_newindex['관광'])
tourist_sum
884293
kto_201901_country_newindex['전체비율(%)'] = \
round(kto_201901_country_newindex['관광'] / tourist_sum * 100, 1)
kto_201901_country_newindex.head()
|
국적 |
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
기준년월 |
대륙 |
관광객비율(%) |
전체비율(%) |
0 |
일본 |
198805 |
2233 |
127 |
785 |
4576 |
206526 |
2019-01 |
아시아 |
96.3 |
22.5 |
1 |
대만 |
86393 |
74 |
22 |
180 |
1285 |
87954 |
2019-01 |
아시아 |
98.2 |
9.8 |
2 |
홍콩 |
34653 |
59 |
2 |
90 |
1092 |
35896 |
2019-01 |
아시아 |
96.5 |
3.9 |
3 |
마카오 |
2506 |
2 |
0 |
17 |
45 |
2570 |
2019-01 |
아시아 |
97.5 |
0.3 |
4 |
태국 |
34004 |
37 |
199 |
96 |
6998 |
41334 |
2019-01 |
아시아 |
82.3 |
3.8 |
kto_201901_country_newindex.sort_values('전체비율(%)', ascending=False).head()
|
국적 |
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
기준년월 |
대륙 |
관광객비율(%) |
전체비율(%) |
17 |
중국 |
320113 |
2993 |
138 |
8793 |
60777 |
392814 |
2019-01 |
아시아 |
81.5 |
36.2 |
0 |
일본 |
198805 |
2233 |
127 |
785 |
4576 |
206526 |
2019-01 |
아시아 |
96.3 |
22.5 |
1 |
대만 |
86393 |
74 |
22 |
180 |
1285 |
87954 |
2019-01 |
아시아 |
98.2 |
9.8 |
25 |
미국 |
42989 |
418 |
2578 |
229 |
16523 |
62737 |
2019-01 |
아메리카 |
68.5 |
4.9 |
2 |
홍콩 |
34653 |
59 |
2 |
90 |
1092 |
35896 |
2019-01 |
아시아 |
96.5 |
3.9 |
1.4. 데이터 전처리 과정 함수로 만들기
def create_kto_data(yy, mm):
file_path = "C:/Users/jjung/바탕 화면/개인Study/DA_prac/02/4_Tourists_Event/files/kto_{}{}.xlsx".format(yy, mm)
df = pd.read_excel(file_path, header=1, skipfooter=4, usecols='A:G')
df['기준년월'] = '{}-{}'.format(yy, mm)
ignore_list = ['아시아주', '미주', '구주', '대양주', '아프리카주', '기타대륙', '교포소계']
condition = (df['국적'].isin(ignore_list) == False)
df_country = df[condition].reset_index(drop=True)
continents = ['아시아']*25 + ['아메리카']*5 + ['유럽']*23 + ['대양주']*3 + ['아프리카']*2 + ['기타대륙'] + ['교포']
df_country['대륙'] = continents
df_country['관광객비율(%)'] = round(df_country.관광 / df_country.계 * 100, 1)
tourist_sum = sum(df_country['관광'])
df_country['전체비율(%)'] = round(df_country['관광'] / tourist_sum * 100, 1)
return(df_country)
kto_test = create_kto_data(2018, 12)
kto_test.head()
|
국적 |
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
기준년월 |
대륙 |
관광객비율(%) |
전체비율(%) |
0 |
일본 |
252461 |
1698 |
161 |
608 |
3593 |
258521 |
2018-12 |
아시아 |
97.7 |
22.7 |
1 |
대만 |
85697 |
71 |
22 |
266 |
1252 |
87308 |
2018-12 |
아시아 |
98.2 |
7.7 |
2 |
홍콩 |
58355 |
41 |
3 |
208 |
939 |
59546 |
2018-12 |
아시아 |
98.0 |
5.2 |
3 |
마카오 |
6766 |
0 |
1 |
20 |
36 |
6823 |
2018-12 |
아시아 |
99.2 |
0.6 |
4 |
태국 |
47242 |
42 |
302 |
58 |
6382 |
54026 |
2018-12 |
아시아 |
87.4 |
4.2 |
1.5. 반복문(for문)을 통해 다수의 엑셀 데이터 불러와서 합치기
for yy in range(2010, 2021):
for mm in range(1, 13):
yymm = '{}{}'.format(yy, mm)
print(yymm)
20101
20102
20103
20104
20105
20106
20107
...
20206
20207
20208
20209
202010
202011
202012
- zfill() 함수 : 괄호안의 숫자만큼 0을 채워서 자릿수를 맞춰주는 함수
mm = 1
print(mm)
1
print(str(mm).zfill(2))
01
print(str(mm).zfill(3))
print(str(mm).zfill(4))
001
0001
for yy in range(2010, 2021):
for mm in range(1, 13):
mm_str = str(mm).zfill(2)
yymm = '{}{}'.format(yy, mm_str)
print(yymm)
201001
201002
201003
201004
201005
201006
...
202006
202007
202008
202009
202010
202011
202012
df = pd.DataFrame()
for yy in range(2010, 2021):
for mm in range(1, 13):
try:
temp = create_kto_data(str(yy), str(mm).zfill(2))
df = df.append(temp, ignore_index=True)
except:
pass
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 7500 entries, 0 to 7499
Data columns (total 11 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 국적 7500 non-null object
1 관광 7500 non-null int64
2 상용 7500 non-null int64
3 공용 7500 non-null int64
4 유학/연수 7500 non-null int64
5 기타 7500 non-null int64
6 계 7500 non-null int64
7 기준년월 7500 non-null object
8 대륙 7500 non-null object
9 관광객비율(%) 7500 non-null float64
10 전체비율(%) 7500 non-null float64
dtypes: float64(2), int64(6), object(3)
memory usage: 644.7+ KB
df.tail()
|
국적 |
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
기준년월 |
대륙 |
관광객비율(%) |
전체비율(%) |
7495 |
대양주 기타 |
1 |
0 |
1 |
0 |
3 |
5 |
2020-05 |
대양주 |
20.0 |
0.0 |
7496 |
남아프리카공화국 |
1 |
0 |
3 |
0 |
25 |
29 |
2020-05 |
아프리카 |
3.4 |
0.0 |
7497 |
아프리카 기타 |
3 |
1 |
3 |
6 |
118 |
131 |
2020-05 |
아프리카 |
2.3 |
0.0 |
7498 |
국적미상 |
1 |
0 |
0 |
0 |
3 |
4 |
2020-05 |
기타대륙 |
25.0 |
0.0 |
7499 |
교포 |
0 |
0 |
0 |
0 |
790 |
790 |
2020-05 |
교포 |
0.0 |
0.0 |
1.6 통합 데이터를 엑셀 파일로 저장하기
df.to_excel('./files/kto_total.xlsx', index = False)
1.7 국적별 필터링된 데이터를 엑셀 파일로 저장하기
condition = (df['국적'] == '중국')
df_filter = df[condition]
df_filter.head()
|
국적 |
관광 |
상용 |
공용 |
유학/연수 |
기타 |
계 |
기준년월 |
대륙 |
관광객비율(%) |
전체비율(%) |
17 |
중국 |
40425 |
11930 |
55 |
2751 |
36091 |
91252 |
2010-01 |
아시아 |
44.3 |
10.1 |
77 |
중국 |
60590 |
7907 |
68 |
29546 |
42460 |
140571 |
2010-02 |
아시아 |
43.1 |
13.6 |
137 |
중국 |
50330 |
13549 |
174 |
14924 |
62480 |
141457 |
2010-03 |
아시아 |
35.6 |
9.2 |
197 |
중국 |
84252 |
13306 |
212 |
2199 |
47711 |
147680 |
2010-04 |
아시아 |
57.1 |
15.5 |
257 |
중국 |
89056 |
12325 |
360 |
2931 |
49394 |
154066 |
2010-05 |
아시아 |
57.8 |
17.0 |
file_path = './files/[국적별 관광객 데이터] 중국.xlsx'
df_filter.to_excel(file_path, index = False)
cntry_list = df['국적'].unique()
cntry_list
array(['일본', '대만', '홍콩', '마카오', '태국', '말레이시아', '필리핀', '인도네시아', '싱가포르',
'미얀마', '베트남', '인도', '스리랑카', '파키스탄', '방글라데시', '캄보디아', '몽골', '중국',
'이란', '이스라엘', '터키', '우즈베키스탄', '카자흐스탄', 'GCC', '아시아 기타', '미국',
'캐나다', '멕시코', '브라질', '미주 기타', '영국', '독일', '프랑스', '네덜란드', '스웨덴',
'스위스', '이탈리아', '덴마크', '노르웨이', '벨기에', '오스트리아', '스페인', '그리스', '포르투갈',
'핀란드', '아일랜드', '우크라이나', '러시아', '크로아티아', '루마니아', '불가리아', '폴란드',
'구주 기타', '오스트레일리아', '뉴질랜드', '대양주 기타', '남아프리카공화국', '아프리카 기타',
'국적미상', '교포'], dtype=object)
for cntry in cntry_list:
condition = (df['국적'] == cntry)
df_filter = df[condition]
file_path = './files/[국적별 관광객 데이터] {}.xlsx'.format(cntry)
df_filter.to_excel(file_path, index = False)