[3주차 목표]
1. 데이터프레임 사용법을 익힌다.
2. 👉파이썬을 이용해서 데이터를 각종 차트로 시각화해본다.👈
3. 상관 관계 분석에 대해서 이해한다.
[목차]
캐글의 코로나 확진 데이터를 통해 그래프를 그려본다. 2020-01월부터 06월까지의 4가지 테이블 (patient info, case, time-age, time-gender) 을 이용한다.
#패키지 임포트
import matplotlib.pyplot as plt
import seaborn as sns
series이름.plot()
을 사용하면 인덱스를 x축으로 실제 값을 y축으로 사용하여 그래프를 그려준다.
patient information 데이터를 통해
confirme_date
을 기준으로 케이스 환자 수를 세어서 일별 확진자 그래프를 만든다.
#날짜별 확진자 선형그래프
p_info.groupby('confirmed_date')['patient_id'].count() # 날짜별 확진자 테이블
plt.rcParams['figure.figsize'] = (15, 5) # 그래프사이즈 조정
daily_count.plot() # 그래프 생성
plt.title('Number of Daily Confirmed Patients') #그래프 제목
plt.show()
✋
daily_count = p_info['confirmed_date'].value_counts().sort_index()
처음에 이런 코드로 만들었더니 값을 기준으로 정렬이 되어서 이런 그래프가 나왔다. 하지만 뒤에sort_index()
를 붙여서 인덱스 순으로 정렬하면 강의자료와 같은 그래프가 나온다. 하지만 빈 값이 있으면 다른 그래프가 나온다.
cumsum()
을 이용한다.
#누적 확진자수 선형그래프
accumulated_count = daily_count.cumsum()
accumulated_count.plot()
plt.title('Accumulated Number of Daily Confirmed Patients')
확진자 케이스 자료를 이용해 대구의 구별로 확진자의 수를 나타내는 bar chart를 만들어본다. province열에 도시이름이 들어가고 city열에 구이름이 들어간 것을 확인한다.
먼저, 대구 자료만 조건을 이용해 가져온다.
#대구 케이스만 가져온다
case[case['province']=='Daegu]
이전에는 matplot을 이용하였는데, 이번에는 seaborn의 barplot()이란 기능을 통해 바차트를 그린다.
sns.barplot(data=데이터프레임, x='열의 이름', y='열의이름', ci=None).set(xlabel='x축레이블', ylabel='y축레이블', title='차트타이틀'
#x축에는 확진자수, y축에는 구를 넣어서 바차트를 만든다
sns.barplot(data=case[case['province'] == 'Daegu'], x='confirmed', y='city', ci=None).set(xlabel='Confirmed', ylabel='District', title='Case in Daegu')
#서울에서 발생한 케이스만 가져온다
case[case['province']=='Seoul']
#바차트 작성
sns.barplot(data=case[case['province']=='Seoul'], x='city', y='confirmed', ci=None).set(xlabel='Confirmed', ylabel='District', title='Case in Seoul')
✋
sns.barplot()
은 막대그래프가 총 합이 아니라 평균값을 보여준다.
확진자 성별 데이터를 이용해 2020-06-30일에 확진된 수를 가져온다.
#날짜에 맞는 자료만 가져온다.
t_gender[t_gender['date']=='2020-06-30']['confirmed']
#result
240 5495
241 7305
Name: confirmed, dtype: int64
파이 차트를 만들려면
가 필요하다.
#필요한 리스트를 만든다.
pie_labels = [male, female]
pie_values = t_gender[t_gender['date']=='2020-06-30']['confirmed'].values().tolist()
파이 차트는 plt.pie(데이터값리스트, labels=레이블리스트)
로 만든다.
#파이차트 만들기
plt.pie(pie_values, labels=pie_labels, autopct='%.02f%%')
plt.title('Confirmed Case (2020-06-30)')
plt.show()
날짜별-연령별 확진자 데이터를 통해서 파이차트를 만든다.
#원하는 날짜데이터만 가져와서 변수에 저장한다.
population_by_age = t_age[t_age['date']=='2020-06-30']
print(population_by_age)
#result
date time age confirmed deceased
1080 2020-06-30 0 0s 193 0
1081 2020-06-30 0 10s 708 0
1082 2020-06-30 0 20s 3362 0
1083 2020-06-30 0 30s 1496 2
1084 2020-06-30 0 40s 1681 3
1085 2020-06-30 0 50s 2286 15
1086 2020-06-30 0 60s 1668 41
1087 2020-06-30 0 70s 850 82
1088 2020-06-30 0 80s 556 139
#레이블, 데이터 리스트 작성
pie_labels = population_by_age['age'].values.tolist()
pie_values = population_by_age['confirmed'].values.tolist()
#파이 차트 만들기
plt.figure(figsize=(7,7))
plt.pie(pie_values, labels=pie_labels, autopct='%.2f%%')
plt.title('Confirmed Distribution by age')
plt.show()
👉 그래프 사이즈 조절
plt.figure(figsize=(7,7))
과 같은 사이즈 조절하는 코드는plt.show()
보다 위에 있어야 반영이 된다.