본문 바로가기
정보

코로나 데이터 분석 체험하기

by 모오오어 2020. 9. 17.
반응형
SMALL

 

 

 

 

01 데이터 분석 살펴보기

데이터 분석이란 무엇이며, 어떻게 진행되는지 알아보기

 

 

1.첫 코드 실행해보기

python에서 데이터를 표시하는 가장 기본적인 방법은 print() 명령어를 사용하는 것입니다.

print()에서 ()괄호 안에 원하는 내용을 넣으면 그 내용을 그대로 출력하게 됩니다.

python 텍스트 출력
python에서 문자를 표시(출력)할 때는 다음과 같이 따옴표(‘’) 또는 쌍따옴표(“”) 안에 작성해야 합니다.

  • print("안녕하세요?")
  • print('코딩은 즐거워')

지시사항

  1. print()의 괄호 안에 첫 코딩을 시작했어요!를 입력합니다.
  2. 실행 버튼을 눌러서 내가 쓴 내용이 화면에 잘 나오는지 확인해봅시다.
  3. 제출 버튼을 눌러서 올바르게 코드를 짰는지 확인해봅시다.

Tips

  • Ctrl + Shift + Enter 단축키를 사용하면 코드를 간편히 실행할 수 있습니다.
  • Alt + Shift + Enter 단축키를 사용하여 코드를 간편히 제출할 수 있습니다.

 

 

2.변수 사용해보기

변수는 자료를 담는 그릇입니다.
변수를 직접 사용해봅시다.

변수에는

  • 숫자
  • 문자
  • 문자들의 집합
  • 자료를 여러개 담는 리스트

를 저장할 수 있습니다.

 

3. 연산자 사용해보기(1)

파이썬의 덧셈, 뺄셈을 배운 여러분을 위해 엘리스토끼가 알쏭달쏭한 수수께끼를 냈습니다.

나는 자연수 중 하나를 생각하고 있어.  

그리고 그 수에서 829176을 더하고, 4927819를 뺀 다음, 243을 더하고 1024로 뺐어.  

그랬더니 23571이라는 수가 나오더라구!  

엘리스토끼가 생각하고있던 수는 무엇일까요?

변수와 덧셈, 뺄셈을 이용해 엘리스토끼가 시행한 연산을 반대로 진행하면서 풀어봅시다!

연산자 사용해보기(2)

python에서 더하기 연산자는 +, 빼기 연산자는 -를 사용했습니다.
그렇다면 곱하기 연산자는 ×, 나누기 연산자는 ÷일까요?
아쉽게도 아니랍니다.

python에서 곱하기는 *로, 나누기는 /를 사용한답니다.

예컨대
10 곱하기 7은 10 * 7,
30 나누기 5은 30 / 5와 같이 사용한답니다.

 

4. 외부 라이브러리 사용해보기

python은 그 자체만으로도 많은 기능을 가지고 있습니다.
하지만 필요하다면 사용자가 훨씬 더 많은 기능을 추가할 수 있죠.
이러한 기능들의 집합을 라이브러리라고 합니다.

python 데이터 분석에 사용되는 가장 대표적인 라이브러리는 pandas(판다스)입니다.
라이브러리를 한 번 불러오면 라이브러리가 지원하는 모든 기능을 바로 사용할 수 있죠.
놀랍지 않나요?

 

 

 

 

02 코로나 데이터 분석해보기

코로나 데이터로 생애 첫 데이터 분석 도전해보기!

 

 

1. 데이터 불러오고 확인하기

data 폴더의 corona_data.xlsx 파일에 코로나 데이터가 있습니다.

이 코로나 엑셀 데이터 파일을 python 코드를 통해 불러오는 방법에 대해 확인해봅시다.

코드 설명

엑셀 데이터 파일(corona_data.xlsx)의 내용으로 코로나 데이터을 불러오고, print를 이용해 출력하고 있습니다.

 

 

 

2. 특정 열 데이터 출력하기

엑셀 파일(.xlsx)로 생성한 데이터 프레임에서, 특정 열(column) 데이터만 출력하는 방법을 알아보도록 하겠습니다.

corona_data 라는 데이터 프레임이 존재할 때,

print(corona_data.columns)Copy

이 코드로 데이터 프레임이 갖고 있는 열들을 확인할 수 있습니다.

print(corona_data["열 이름"])Copy

그리고 데이터 프레임에 열 이름으로 인덱스를 지정해주면 해당 열만 따로 접근할 수 있습니다.

 

코드 설명

엑셀 데이터 파일(corona_data.xlsx)의 내용으로 코로나 데이터을 불러오고, corona_data라는 이름으로 저장합니다.

이 상태에서 데이터셋['열 이름']을 활용하면 해당 열의 데이터만 따로 확인할 수 있습니다. 이 때, 열 이름은 데이터셋의 열 이름과 동일해야 합니다.

 

3. 데이터 살펴보기(1)

데이터셋에 .loc 메서드를 사용하면 데이터의 원하는 부분만 출력(확인)할 수 있습니다.

.loc 메서드는 데이터프레임.loc[행, 열]의 형태로 사용합니다.

예컨대 corona_data.loc['2020-07-31', '확진자']은 2020년 7월 31일의 '확진자' 데이터를 조회하는 명령어입니다.

코드 설명

엑셀 데이터 파일(corona_data.xlsx)의 내용으로 코로나 데이터을 불러오고, .loc()명령어를 사용해서 데이터의 일부분을 조회합니다.

 

 

데이터 살펴보기(2)

.loc 메서드에 :(콜론)을 사용하면 여러 범위의 데이터를 확인할 수 있습니다.
.loc['시작행':'끝행', '시작열':'끝열']과 같이 사용합니다.

corona_data.loc['2020-03-01':'2020-03-14', '확진자':'누적검사']Copy

위 코드는 2020년 3월 1일부터 3월 14일까지의 데이터 중에서, ‘확진자’ 열부터 ‘누적검사’ 열까지 출력하는 내용입니다.

코드 설명

엑셀 데이터 파일(corona_data.xlsx)의 내용으로 코로나 데이터을 불러오고, .loc()명령어를 사용해서 데이터의 일부분을 조회합니다.

 

 

 

4.코로나 데이터 분석해보기

확진자/누적 검사 추이 비교해보기

질병관리본부에서 발표한 데이터를 바탕으로 한국에서의 코로나19 확진자/누적 검사 추이를 비교해봅니다.

코드 설명

엑셀 데이터 파일(corona_data.xlsx)의 내용으로 코로나 데이터을 불러오고, draw_image 함수로 데이터를 시각화합니다.

 

 

 

 

 

03 온라인 쇼핑 데이터 분석해보기

코로나는 온라인 쇼핑을 어떻게 변화시켰을까?

 

 

1. 쇼핑 데이터 불러오고 확인하기

코로나 사태가 온라인 쇼핑 거래에 얼마나 영향을 끼쳤는지 확인해보기 위한 실습을 진행해보려고 합니다.

우선 쇼핑 데이터를 갖고 있는 csv 파일을 이용하여 데이터 프레이믈 만들어봅시다.

코드 설명

csv 데이터 파일(shopping_data.csv)의 내용으로 온라인 쇼핑 거래량 데이터를 불러오고, print를 이용해 출력하고 있습니다.

 

2. 보고 싶은 데이터만 추출하기

쇼핑 데이터에서 일부만 불러와서 읽어보려고 합니다. 데이터 프레임에서 데이터를 일부분만 불러와서 읽을 때는 데이터프레임.loc[행, 열]을 사용합니다.

각각의 상품 분야와 기간마다 얼마나 거래가 이루어졌는지 확인해보도록 합시다.

코드 설명

csv 데이터 파일(shopping_data.csv)의 내용으로 온라인 쇼핑 거래량 데이터를 불러오고, .loc() 명령어(메서드)를 활용하여 쇼핑 거래량 데이터의 일부 데이터를 출력하고 있습니다.

 

3. YoY 계산하기

YoY(Year over Year)는 전년 동기 대비 증가율을 의미합니다.

특정 수치가 작년 같은 월에 비해 얼마나 증가했는지를 나타냅니다. python 데이터 분석 라이브러리인 pandas를 활용하면 열 계산을 간단하게 할 수 있습니다.

코드 설명

csv 데이터 파일(shopping_data.csv)의 내용으로 온라인 쇼핑 거래량 데이터를 불러오고, pandas 데이터 열 계산을 진행합니다.
참고: 특정 열의 데이터만 가져올 때는, .loc() 대신 데이터셋['열 이름']을 활용하면 간단히 사용할 수 있습니다.

 

4. 데이터 정렬하기

계산된 YoY 데이터를 바탕으로 데이터를 정렬해봅시다.

코드 설명

csv 데이터 파일(shopping_data.csv)의 내용으로 온라인 쇼핑 거래량 데이터를 불러오고, 2020년 6월의 yoy를 계산하여 yoy_2006이라는 이름으로 저장하였습니다. 이후 sort_values() 명령어를 사용하여 데이터를 오름차순 정렬하였습니다.

 

5. 온라인 쇼핑 데이터 분석해보기

쇼핑 데이터 추이 확인

코로나로 인해 품목별 온라인 거래량 추이가 어떻게 변화했는지 확인해봅니다.

코드 설명

csv 데이터 파일(shopping_data.csv)의 내용으로 온라인 쇼핑 거래량 데이터를 불러오고, .loc() 명령어(메서드)를 활용하여 쇼핑 거래량 데이터의 일부 데이터를 출력하고 있습니다.

상품군 목록
‘합계’, ‘컴퓨터 및 주변기기’, ‘가전·전자·통신기기’, ‘서적’, ‘사무·문구’, ‘의복’, ‘신발’, ‘가방’, ‘패션용품 및 액세서리’, ‘스포츠·레저용품’, ‘화장품’, ‘아동·유아용품’, ‘음·식료품’, ‘농축수산물’, ‘생활용품’, ‘자동차 및 자동차용품’, ‘가구’, ‘애완용품’, ‘여행 및 교통서비스’, ‘문화 및 레저서비스’, ‘e쿠폰서비스’, ‘음식서비스’, ‘기타서비스’, ‘기타’

*데이터 출처: 통계청 (https://kostat.go.kr/)*

# 급감 예시

 

 

->category: '문화 및 레저서비스' 급감

 

#급증 예시

 

 

->category: '컴퓨터 및 주변기기' 급증

 

 

다른 분야 쇼핑데이터추이 분석하기

 

category ='가전·전자·통신기기'

category ='서적'

category ='사무·문구'

category ='의복'

category ='화장품'

category ='아동·유아용품'

category ='음·식료품'

category ='농축수산물'

category ='생활용품'

 

category ='자동차 및 자동차용품'

 

category ='가구'

category ='애완용품'

category ='여행 및 교통서비스'

category ='e쿠폰서비스'

category ='음식서비스'

 

 

 

04 서울 유동인구 데이터 분석해보기

서울 사람들은 코로나에 어떻게 반응했을까?

 

 

1. 서울 유동인구 데이터 불러오고 확인하기

SKT 모바일 유동 인구 데이터를 활용하여 코로나 이후의 유동 인구 변호량을 분석해보려고 합니다.

우선 데이터를 불러와서 값들을 확인해보겠습니다.

 

데이터 출처: SKT 빅데이터 허브
(https://www.bigdatahub.co.kr/index.do)

 

 

2. 열 데이터 간단히 추출하기

이제까지는 열 데이터를 추출하기 위해 loc를 사용하여,

print(movement_data.loc[:, '지역'])Copy

이런 식으로 출력하였습니다.

만약 특정한 열의 데이터만 뽑는다면 이를 다음과 같이 간단히 수 있습니다.

print(movement_data['지역'])Copy

여러 열의 데이터를 추출할 때는 데이터들을 리스트 형태로 넣어주면 됩니다.

 

*[  ]가 2번 사용되는 것에 유의

  • 겉의 [  ] : 열의 이름을 지정하기위해 대괄호를 열어주고
  • 속의 [  ]: 리스트를 표현, 넣어주는 것

 

3. 조건 데이터 추출하기

pandas를 활용하면 조건에 맞는 데이터 추출이 가능합니다.

데이터셋[데이터셋[열이름]==조건]과 같은 형태로 사용합니다.

각 조건에 맞는 데이터가 추출되는 것을 확인해보세요.

Tips

  • 이렇게 조건에 맞는 데이터를 추출하는 것을 마스킹 연산이라고 합니다.

 

4. 여러 조건을 가지고 데이터 추출하기

조건을 여러개 사용할 때는 ‘비교 연산자’라는 것을 사용합니다.

여러 조건을 동시에 만족해야할 때는 &(and) 연산자를, 여러 조건 중 하나만 만족해도 될 때는 |(or) 연산자를 사용합니다.

각 조건에 맞는 데이터가 추출되는 것을 확인해보세요.

Tips

  • |키를 처음 써보시나요? |키는 일반적으로 엔터키 바로 위에 위치해 있습니다. (shift키와 함께 눌러보세요!)

 

5. 데이터 재배열하기

데이터셋.pivot_table() 명령어를 사용하면 원하는 조건으로 데이터를 재배열할 수 있습니다.

이는 ‘피봇 테이블’이라 하며, 산재된 데이터를 유의미하게 재가공하여 볼 수 있는 핵심 분석 방법 중 하나입니다.

Tips

  • 행은 ‘주차’가 되어야 합니다.
  • 결과값(values=’’)은 ‘유동인구수’가 들어가야 합니다.

연령대별 총 유도인구수 변화추이

  • 세로줄: index='주차'-> 변화추이
  • 가로줄: columns='연령대', ->연령대별
  • 내용: values='유동인구수'
  • aggfunc='sum' ->총

 

6. 데이터 시각화하기

연령대별 총 유동인구수 변화 추이를 그래프로 확인해보도록 하겠습니다.

 

-> 20대와 50대 총 유동인구수 변호 추이

데이터 출처: SKT 빅데이터 허브
(https://www.bigdatahub.co.kr/index.do)

 

 

반응형
LIST

댓글