티스토리 뷰

이번 편의 주제는 '데이터 분석 및 시각화' 입니다. 2시간이면 될 줄 알았는데 어쩌다보니(...) 6시간을 훌쩍 넘는 긴 영상이 되었네요. 데이터 분석이 뭐지? 하며 살짝 맛보기 정도로 짧게 훑고 지나가려는 분들께는 조금 부담스러울 수 있는 시간이겠지만, 영상 내내 잡소리는 없이 최대한 필요하다 싶은 내용은 꾹꾹 눌러담았으니 데이터 분석 공부하시려는 분들은 속도감 있게 공부하실 수 있도록 하였습니다. 

도움이 되면 좋겠네요.



데이터 분석이란 말 그대로 데이터를 분석하는 것입니다. 
우리 주변에 데이터는 아주 아주 많은데요. 

거의 모든 것이 데이터라고 해도 과언이 아닐 만큼 데이터는 넘쳐납니다.

예를 들자면.. 

제가 지금 글을 쓰면서 창 밖을 보니 많은 자동차들이 지나다니는데 아마 대부분 내비게이션을 사용할 것 같네요. 그리고 운전자분들은 스마트폰도 소지하고 계시겠지요. 그러면 GPS 를 통해서 몇 시부터 몇 시까지 어디에서 어디로 어떤 경로로 어떤 속도로 이동을 하였는지에 대한 데이터를 확보할 수 있을 겁니다. 이런 데이터들이 쌓이면 현재 저 도로의 통행량을 알 수 있을테고 현재 상태가 어떤지, 원활 / 서행 / 정체 중에 하나를 골라서 다른 운전자들에게 알려줄 수도 있겠네요. 경우에 따라서 정체가 심한 경우에는 다른 길로 우회하라고 알려줄 수도 있구요.


내비게이션이 없을 때는 명절 귀성길에 어디가 덜 막힐까 고속도로와 국도 사이에서 엄청 고민 많이 했던 기억이 나네요. 내린 결론은 결국 제가 가는 길이 막히더라는 ㅠㅠ...





편의점은 어떨까요?

시간대별로 어떤 상품이 얼만큼 판매되는지를 파악해서 부족한 경우 상품을 더 가져다놓거나 음식의 경우 폐기되는 양이 많으면 해당 음식은 줄일 수도 있겠네요. 너무나 당연하게도 발렌타인, 화이트데이, 빼빼로데이 등 특별한 날은 초코렛 / 사탕 / 빼빼로 판매량이 급증할 것이므로 미리 재고 확보를 통해 입구에 진열을 시켜두곤 합니다.





맥주와 기저귀 얘기, 들어보셨나요?

미국의 한 마트에서 고객들이 어떤 상품들을 함께 구매하는지를 분석해봤다고 합니다. 그러면 함께 구매되는 상품들의 프로모션 효과를 높일 수 있는 방안을 마련할 수 있을테니까요. 그 결과 흥미로운 사실이 발견되었는데요. 바로 맥주와 기저귀가 함께 판매되는 경우가 많았다고 합니다. 알고 봤더니 아기의 기저귀를 사러 온 아빠들이 맥주를 함께 구매한 것이죠. 이를 활용해 기저귀 코너 옆에 맥주를 진열하자 매출이 크게 늘어났다고 합니다. 심지어 기저귀와 맥주를 함께 파는 패키지 상품도 있었다지요.






제 유튜브 채널에도 데이터 분석 정보를 제공해주는데요. 보시는 것처럼 연령대별로 비율이 어떤지, 그리고 성별이 어떤지도 쉽게 파악이 가능합니다. 




남자분들이 압도적으로 많네요 ㅎㅎ


 

 

사실 우리가 다룰 수 있는 데이터는 정말이지 엄청나게 많답니다.  

당장 구글에 '데이터 셋' 이라고만 검색해도 교통, 환경, 복지, 교육, 안전, 인구, 산업, 문화 등등 다양한 분야의 수많은 데이터들이 "저기, 나 좀 분석 해주소~~" 하고 아우성이죠. 또는 여러분이 업무나 생활에 활용하시는 엑셀 형태의 데이터도 적지 않을텐데요. 이 데이터를 있는 그대로 두지 말고 조금만 분석을 해보면 남들은 보지 못하는 엄청난 가치를 발견하게 될 수도 있습니다.



파이썬에는 이런 데이터 분석을 굉장히 쉽게 할 수 있는 pandas 라는 라이브러리를 제공합니다. 





꼭 데이터 분석이 아니더라도 엑셀을 자주 다루는 분이라면 pandas 가 굉장히 큰 도움이 되실 수도 있습니다. 데이터를 자유자재로 자르고 붙이고 걸러내는 등의 작업을 할 수 있거든요.



참고로 이 팬더는 아니예요 ㅋㅋ



그리고 데이터 분석 만큼이나 중요한 것이 데이터 시각화입니다.
시각화는 눈으로 쉽게 볼 수 있도록 그래프 형태로 보여주는 것을 말하는데요.
숫자가 가득 들어찬 복잡한 데이터를 있는 그대로 보는 것보다는 적절한 형태의 그래프로 바꾸는 것이 훨씬 보기가 좋습니다.

가령 여러분이 2대의 차를 놓고 무엇을 살지 고민한다면 이런 형태의 데이터로 보는 것보다는



이렇게 보는 편이 훨씬 알아보기가 쉽지요?




이렇게 생긴 것을 '레이더 차트' 라고 하는데요. 파이썬에는 데이터 시각화를 위한 matplotlib 이라는 라이브러리가 있습니다. 




학창시절에 배운 막대 그래프, 히스토그램, 꺾은선 그래프, 원 그래프, 산점도 그래프 등등 다양한 그래프를 만들 수 있구요. 취향에 따라 크기나 색상, 스타일 등도 섬세하게 적용할 수도 있답니다.




이번 활용편에서는 이렇게 pandas 와 matplotlib 을 가지고 기본적인 데이터 분석 및 시각화 방법에 대해 공부합니다. 물론 라이브러리 사용법을 익히고 나면 퀴즈도 드려서 복습을 하실 수 있게 할 거구요. 마지막으로는 실제 데이터를 활용한 대한민국 인구 문제에 대해서도 분석 및 시각화를 해봅니다. 그 과정에서 발생하는 예외 상황에 대한 처리도 함께 배우지요.



영상의 상세 목차는 다음과 같습니다.

[소개]
(0:00:00) 0.Intro
(0:00:37) 1.소개
(0:02:25) 2.활용편5 소개

[Pandas]
(0:05:58) 3.Series
(0:15:34) 4.DataFrame
(0:26:30) 5.Index
(0:35:25) 6.파일 저장 및 열기
(0:53:25) 7.데이터 확인
(1:05:00) 8.데이터 선택 (기본)
(1:12:28) 9.데이터 선택 (loc)
(1:18:23) 10.데이터 선택 (iloc)
(1:25:21) 11.데이터 선택 (조건) #1
(1:34:13) 12.데이터 선택 (조건) #2
(1:43:38) 13.결측치
(1:54:56) 14.데이터 정렬
(2:01:22) 15.데이터 수정
(2:24:12) 16.함수 적용
(2:31:27) 17.그룹화
(2:47:01) 18.퀴즈

[Matplotlib]
(2:55:33) 19.그래프 기본
(3:05:23) 20.축
(3:11:25) 21.범례
(3:15:56) 22.스타일
(3:35:48) 23.파일 저장
(3:39:31) 24.텍스트
(3:44:17) 25.여러 데이터
(3:49:51) 26.막대 그래프 (기본)
(3:58:10) 27.막대 그래프 (심화)
(4:05:03) 28.DataFrame 활용
(4:10:52) 29.누적 막대 그래프
(4:17:03) 30.다중 막대 그래프
(4:28:37) 31.원 그래프 (기본)
(4:38:44) 32.원 그래프 (심화)
(4:53:06) 33.산점도
(5:04:24) 34.여러 그래프
(5:13:18) 35.퀴즈

[프로젝트]
(5:27:16) 36.인구 피라미드
(5:52:05) 37.출생아 수 및 합계출산율
(6:18:14) 38.Outro


모든 내용은 하나의 영상으로 제공되며, 총 분량은 6시간 18분입니다. 
아마 실습과 병행하시면, 아무리 짧아도 2배 이상은 소요될거라 생각합니다.


(강의 영상)

 

학습하시다가 의도한 대로 동작이 되지 않으신 경우 제가 작성한 코드를 제공해드리니 작성하신 코드와 비교하면서 보시면 어디가 잘못되었는지 쉽게 찾으실 수 있을 거예요. ^^

 

 

활용편은 기본적으로 파이썬 문법을 알고 계시다는 가정 하에 만든 강의이므로, 파이썬을 처음 접하시는 분은 아래 기본편 영상을 통해 먼저 학습을 부탁드립니다.

(기본편)


데이터 분석 공부를 하시는 분들께, 그리고 엑셀을 자주 다루시는 분들께 도움이 되었으면 합니다. ^^ 개인적으로 이번편은 직장인 분들께서는 한 번쯤 공부해두시면 언젠가는 반드시 유용하게 써먹을 일이 있으리라 생각합니다.

감사합니다.

 

 

 

 

 

 

소스 코드


PythonDataWorkspace.zip
1.30MB

 

 

 

 

 

학습 자료


수업에 필요한 소스코드 및 Url 입니다. 복사해서 사용해주세요 ^^
학습 파일 이름 기준으로 작성하였습니다.

 

Pandas

02. DataFrame

data = {
    '이름' : ['채치수', '정대만', '송태섭', '서태웅', '강백호', '변덕규', '황태산', '윤대협'],
    '학교' : ['북산고', '북산고', '북산고', '북산고', '북산고', '능남고', '능남고', '능남고'],
    '키' : [197, 184, 168, 187, 188, 202, 188, 190],
    '국어' : [90, 40, 80, 40, 15, 80, 55, 100],
    '영어' : [85, 35, 75, 60, 20, 100, 65, 85],
    '수학' : [100, 50, 70, 70, 10, 95, 45, 90],
    '과학' : [95, 55, 80, 75, 35, 85, 40, 95],
    '사회' : [85, 25, 75, 80, 10, 80, 35, 95],
    'SW특기' : ['Python', 'Java', 'Javascript', '', '', 'C', 'PYTHON', 'C#']
}
data


15. 퀴즈

import pandas as pd
data = {
    '영화' : ['명량', '극한직업', '신과함께-죄와 벌', '국제시장', '괴물', '도둑들', '7번방의 선물', '암살'],
    '개봉 연도' : [2014, 2019, 2017, 2014, 2006, 2012, 2013, 2015],
    '관객 수' : [1761, 1626, 1441, 1426, 1301, 1298, 1281, 1270], # (단위 : 만 명)
    '평점' : [8.88, 9.20, 8.73, 9.16, 8.62, 7.64, 8.83, 9.10]
}
df = pd.DataFrame(data)
df

 

Matplotlib

14. 원 그래프 (심화)

colors = ['#ffadad', '#ffd6a5', '#fdffb6', '#caffbf', '#9bf6ff', '#a0c4ff']


17. 퀴즈

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family'] = 'Malgun Gothic' # Windows
# matplotlib.rcParams['font.family'] = 'AppleGothic' # Mac
matplotlib.rcParams['font.size'] = 15
matplotlib.rcParams['axes.unicode_minus'] = False

data = {
    '영화' : ['명량', '극한직업', '신과함께-죄와 벌', '국제시장', '괴물', '도둑들', '7번방의 선물', '암살'],
    '개봉 연도' : [2014, 2019, 2017, 2014, 2006, 2012, 2013, 2015],
    '관객 수' : [1761, 1626, 1441, 1426, 1301, 1298, 1281, 1270], # (단위 : 만 명)
    '평점' : [8.88, 9.20, 8.73, 9.16, 8.62, 7.64, 8.83, 9.10]
}
df = pd.DataFrame(data)
df

 

Project

1. 인구 피라미드
데이터 제공 링크
https://jumin.mois.go.kr/ageStatMonth.do

2. 출생아 수 및 합계출산율
데이터 제공 링크
https://www.index.go.kr/potal/main/EachDtlPageDetail.do?idx_cd=1428

 

 

 

 

 

 

 

참고 자료


영상보다는 글이 편하신 분들이라면 pandas 공식 홈페이지에서 제공하는 '10분 pandas' 라는 자료가 있는데요. 이것으로 공부하셔도 좋고..
https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html

아니면 어떤 분이 감사하게도 한글로 번역을 해주셨는데 여기를 참고하셔도 좋겠습니다. 눈에 확 들어오는 그림까지 제공해주셔서 더 이해가 쉬울거에요.
https://dandyrilla.github.io/2017-08-12/pandas-10min/

한 눈에 보고 싶다! 하시는 분은 딱 2장짜리 Cheat Sheet 를 보셔도 좋습니다. 시험 치기 전에 전체 내용 정리하기 딱 좋은 형태에요! ^^
https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
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
글 보관함