데이터 출처 : www.kaggle.com/electoralcommission/brexit-results
2016 EU Referendum in the United Kingdom
How did population demographics impact the Brexit vote?
www.kaggle.com
ipynb file : github.com/sangHa0411/DataScience/blob/main/Brexit_Analysis.ipynb
sangHa0411/DataScience
Contribute to sangHa0411/DataScience development by creating an account on GitHub.
github.com
이번 포스팅에서는 Brexit 투표 결과에 대해서 데이터 분석 및 시각화를 진행해보도록 하겠습니다.
위의 Brexit 투표 결과에 대한 데이터는 아래에서 확인할 수 있듯이
census.csv와 referendum.csv 로 구성이 되어있음을 알 수 있습니다.
먼저 census.csv 파일을 Pandas를 이용해서 불러와서 데이터의 구조를 살펴보겠습니다.
데이터를 살펴보면 먼저 Type으로 나와있어서 우리나라로 따지면 도인지 시인지 구인지와 같은 정보가 있는 것을 확인할 수 있습니다. 그와 더불어서 Area 이름 , 거주민들의 규모 , 각 나이대별 거주민 수를 확인할 수 있습니다.
Type에 대해서 조금 더 구체적으로 살펴 보자면 나라 , 도시 , 지역구 등으로 구성이 되어있음을 확인 할 수 있습니다.
각 Type에따라서 데이터를 분석하기 위해서 Type에 따라서 데이터를 분할합니다.
먼저 분할된 데이터를 토대로 먼저 'Country' 에 속해있는 나라들에 따른 인구의 크기를 비교해볼려고 합니다.
Type이 Country인 데이터는 총 5개 United Kingdom , England , Wales Region , Northen Ireland , Scotland로 구성이 되어있는 것을 알 수 있습니다. 여기서 United Kingdom은 전체 인구이므로 이를 제외하고서 총 4개의 나라 England , Wales Region , Northen Ireland , Scotland의 인구 비율을 확인해보겠습니다.
잉글랜드의 인구 비율이 압도적으로 많은 것을 확인할 수 있습니다. 그 뒤로 스코트랜드가 2번째로 높은 인구 비율을 차지하지만 잉글랜드에 비해서는 인구 차이가 상당히 많이 나는 것을 확인할 수 있습니다.
다음은 UK의 전체 인구들 중에서 각 나이대별 인구의 수를 파악해보겠습니다.
중간 과정은 위 github 주소에 가시면 확인하실 수 있습니다.
나이대별 인구 수를 확인해보니 45~59 세 사이의 나이대가 가장 높은 것을 확인할 수 있습니다. 하지만 20 ~ 44 사이의 나이대별 인구또한 크게 차이 나지 않은 것을 확인하였습니다.
이제 각 나라별로 나이대별 인구 수를 위와 같은 방식으로 확인해보겠습니다.
잉글랜드의 인구수가 압도적으로 많아서 다른 나라의 나이대 별 인구가 잘 확인이 되지 않습니다. 하지만 앞에서 확인한 UK 전체의 나이대별 인구 수와 비슷한 양상을 가지는 것을 확인하였습니다.
이제 UK 및 지역구에 대한 인구 수에 대한 정보를 분석하였으니 Brexit 투표 결과에 대한 정보인
referendum 데이터를 분석해보겠습니다.
데이터의 속성에 대해서 살펴보겠습니다.
각 지역에 관한 정보와 Brexit 찬성 , 반대 , 기권등의 수 그리고 유권자들의 수 등과 같은 정보가 있음을 확인할 수 있습니다.
Brexit를 찬성한 전체 투표수와 반대한 전체 투표 수를 비율로써 확인해보겠습니다.
아주 근소한 차이로 Leave 즉 Brexit를 찬성한 비율이 대략 52%로 더 많은 것을 알 수 있습니다.
이제 각 나라별로 투표가 어떻게 되었는지를 분석하겠습니다.
그러기 위해서 먼저 각 나라별로 속하는 지역구들의 이름등을 파악할 수 있는 각 나라별 District을 Key로 선정합니다.
저는 투표 데이터를 분석하면서 유권자 수 , 유효 투표 수 , 그리고 Brexit 찬성 및 반대 데이터만 이용하였습니다.
전체적인 과정은 아래와 같습니다.
1) str_key 즉 위에서 정한 Key , England and Wales District와 같은 label이 입력으로 주어집니다.
2) 그 이후에는 해당 Label에 속하는 district 이름들을 순회하면서 해당 이름이 referendum 데이터의 속하는지, 속한다면 인덱스를 파악합니다.
3) 인덱스를 파악하면 referendum 에 있는 정보를 가져와서 이어 붙입니다.
4) 지역구가 referendum 데이터에 없으면 해당 지역구는 삭제합니다.
위 함수를 이용해서 census 정보에 referendum 정보를 가져와서 붙입니다.
먼저 잉글랜드와 웨일즈 지역 부터 확인해보겠습니다.
지역구의 수가 많기 때문에 총 인구 수 중에서 상위 20개만을 가져와서 시각화 해보겠습니다.
전체 인구 수중에서 유권자 수가 절반보다 높은 수가 되는 것을 확인할 수 있습니다.
이제 잉글랜드와 웨일즈 중에서 인구수가 높은 10개의 지역구에서 찬성 및 반대의 투표 수를 확인해보겠습니다.
잉글랜드와 웨일즈의 대도시의 대부분은 Remain 보다 Leave가 더 많은 것을 확인할 수 있습니다.
Remain 이 더 많은 도시 그리고 Leave가 더 많은 도시의 수를 파악해서 그 비율을 확인해보겠습니다.
Leave의 투표수가 더 많은 도시가 훨씬 더 많은 것을 확인할 수 있습니다.
England 와 Wales에서의 Leave의 투표 수 합, Remain 투표 수 합을 계산해서 비율로 확인해보겠습니다.
Leave와 Remain의 전체 투표 수 차이는 그렇게 크지 않은 것을 확인할 수 있습니다.
Part1에서는 Brexit 투표 결과를 분석 및 시각화하기 위해서 census.csv 데이터를 이용해서 UK 에 속하는 각 나라별 인구 수 차이를 확인해보았습니다. 그리고 지역구 이름을 연결지어서 referendum 에 있는 지역구가 어디 나라에 속하는지를 알아보고 해당 지역구의 투표 결과 정보를 이용해서 England 그리고 Wales에서의 투표 결과를 확인하였습니다.
Part2에서는 Scotland 와 Northen Ireland에 대한 투표 결과를 분석해보도록 하겠습니다.
'Data Visualization' 카테고리의 다른 글
Data Visualization - US Election Day Tweets 데이터 분석 Part1 (0) | 2020.10.07 |
---|---|
Data Visualization - US Corona 분석하기 Part1 (0) | 2020.10.07 |
Data Visualization - Brexit 투표 결과 분석하기 Part2 (0) | 2020.10.07 |
Data Visualization - 서울의 각 시의 공기 오염도 분석 및 시각화 (0) | 2020.10.06 |
Data Visualization - Basemap을 이용한 서울의 각 시 위치 표현하기 (0) | 2020.10.06 |