[Project1] 공공데이터를 활용하여 코로나 확진자 데이터 분석하기
- [실습4] 3.2. 월별 확진자 수 출력
- [실습5] 3.3. 8월 일별 확진자 수 출력
- [실습6] quiz_1 퀴즈 풀이
- [실습7] 3.4. 지역별 확진자 수 출력
3.2. 월별 확진자 수 출력
나누어진 month의 데이터를 바탕으로 달별 확진자 수를 막대그래프로 출력해 보겠습니다.
# 그래프에서 x축의 순서를 정리하기 위하여 order list를 생성합니다.
order = []
for i in range(1,11): # 1부터 10까지
order.append(str(i)) # append함수를 사용하여 i 를 추가해줌
order #order 출력
<결과> 1부터 10까지의 order List
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
<어려운 부분>
# 그래프의 사이즈를 조절합니다.
plt.figure(figsize=(10,5)) # 그래프를 그리겠다는 선언, 가로 10 세로 5
# seaborn의 countplot 함수를 사용하여 출력합니다. 그래프 채우기
sns.set(style="darkgrid") #seaborn의 스타일을 설정
ax = sns.countplot(x="month", data=corona_del_col, palette="Set2", order = order)
# countplot -> 데이터의 개수를 셈, 원본 데이터에서 개수를 센다.
# x 축 설정, palette 색깔 설정, order 순서는 1부터 10까지의 순서를 order로 설정
- pandas의 plot 모듈을 사용해서 시각화 해보기
# series의 plot 함수를 사용한 출력 방법도 있습니다.
corona_del_col['month'].value_counts().plot(kind='bar') # value_count로 값의 개수를 확인해서 내림차순으로 정렬
#plot으로 그리기, 종류 설정
3.3. 8월달 일별 확진자 수 출력
월별 확진자 수를 출력해보면 알 수 있듯이 8월에 확진자 수가 가장 많았습니다.
이번엔 8월 동안 확진자 수가 어떻게 늘었는지 일별 확진자 수를 막대그래프로 출력해 봅시다.
# 그래프에서 x축의 순서를 정리하기 위하여 order list를 생성합니다.
order2 = []
for i in range(1,32):
order2.append(str(i))
order2
# seaborn의 countplot 함수를 사용하여 출력합니다.
plt.figure(figsize=(20,10))
sns.set(style="darkgrid")
ax = sns.countplot(x="day", data=corona_del_col[corona_del_col['month'] == '8'], palette="rocket_r", order = order2)
Q. y축이 되는 데이터는 어떻게 가져오는거지? ax 변수에 담은 data 부분을 다시 한번 봐볼것!
퀴즈 1. 8월 평균 일별 확진자 수를 구하세요. (8월 총 확진자/31일)
#corona_del_col[corona_del_col['month'] == '8']['day'].count()/31
#corona_del_col[corona_del_col['month'] == '8']['day'].value_counts().mean()
#위에는 정답, 아래는 내가 푼 정답
# 31로 나눠주는것이 mean 함수와 같은 역할을 함
corona_del_col[corona_del_col['month'] == '8']['month'].value_counts()/31
output - > 77.935484
# 8월 평균 확진자 수를 구하여 quiz_1 변수에 저장합니다.
# float 형 상수값으로 저장합니다.
quiz_1 = corona_del_col[corona_del_col['month'] == '8']['month'].value_counts()/31
quiz_1 #77.935484
3.4. 지역별 확진자 수 출력
corona_del_col['지역']
import matplotlib.font_manager as fm # 폰트 설정 모듈 사용
font_dirs = ['/usr/share/fonts/truetype/nanum', ] # 디렉토리 지정
font_files = fm.findSystemFonts(fontpaths=font_dirs)
for font_file in font_files:
fm.fontManager.addfont(font_file) # 폰트 추가
#그래프 그리기
plt.figure(figsize=(20,10))
# 한글 출력을 위해서 폰트 옵션을 설정합니다.
sns.set(font="NanumBarunGothic", # 폰트 설정
rc={"axes.unicode_minus":False}, #축의 값이 마이너스인 경우 부호 깨짐을 방지하여 옵션 설정
style='darkgrid')
ax = sns.countplot(x="지역", data=corona_del_col, palette="Set2")
지역 이상치 데이터 처리
* 종랑구 라는 오타, 한국이라는 지역구가 정해지지않은 동네가 있음!!
기존 지역 데이터 특성에 맞도록 종랑구 -> 중랑구, 한국 -> 기타로 데이터를 변경해 봅시다.
# replace 함수를 사용하여 해당 데이터를 변경합니다.
# 이상치가 처리된 데이터이기에 새로운 Dataframe으로 저장합니다.
corona_out_region = corona_del_col.replace({'종랑구':'중랑구', '한국':'기타'})
corona_out_region = corona_del_col.replace({'':'','':,'')}
# 이상치가 처리된 데이터를 다시 출력해 봅시다.
plt.figure(figsize=(20,10))
sns.set(font="NanumBarunGothic",
rc={"axes.unicode_minus":False},
style='darkgrid')
ax = sns.countplot(x="지역", data=corona_out_region, palette="Set2")
output -> 이상치 데이터는 변경한 데이터로 출력이 되는것을 확인함!
'Data Analysis' 카테고리의 다른 글
[데이터분석] 데이터핸들링을 위한 라이브러리 NumPy (0) | 2021.09.22 |
---|---|
[데이터분석] 파이썬 모듈과 라이브러리란? (1) | 2021.09.22 |
[데이터분석](Project1) 코로나 데이터 분석하기1 (0) | 2021.09.22 |
[데이터분석] 파이썬 기초 프로그래밍 3일차 (Dictionary, Key) 너네 누구냐~!!! (0) | 2021.09.21 |
[데이터 분석] 파이썬 기초 프로그래밍 2일차(리스트 사용법) (0) | 2021.09.17 |