멋사 AISCOOL 7기 Python/INPUT
빈 날짜 채우기, 누적 합 구하기
dundunee
2022. 10. 28. 00:34
날짜 데이터를 가져올 경우 중간에 빠진 데이터가 생길 수 있다. 그 때 pd.date_range를 써서 날짜를 메꿔준다.
1. 첫 확진일과 마지막 확진일 찾기
last_day = day_cnt.index[-1] # = df["확진일"].max() #Timestamp('2021-12-26 00:00:00')
first_day = day_cnt.index[0] # = df["확진일"].min() #Timestamp('2020-01-24 00:00:00')
2. date_range로 전체 기간 데이터 만들기
all_day = pd.date_range(start = first_day, end = last_day)
all_day
DatetimeIndex(['2020-01-24', '2020-01-25', '2020-01-26', '2020-01-27',
'2020-01-28', '2020-01-29', '2020-01-30', '2020-01-31',
'2020-02-01', '2020-02-02',
...
'2021-12-17', '2021-12-18', '2021-12-19', '2021-12-20',
'2021-12-21', '2021-12-22', '2021-12-23', '2021-12-24',
'2021-12-25', '2021-12-26'],
dtype='datetime64[ns]', length=703, freq='D')
3. 데이터 프레임으로 변환 후 확진수 붙여주기, 확진자가 없는 일에는 0 넣기
df_all_day = all_day.to_frame()
df_all_day["확진수"] = day_cnt
df_all_day = df_all_day.fillna(0)
#필요없는 컬럼 제거
del df_all_day[0]
df_all_day
4. 시각화
초기 30개의 데이터에 대해 슬라이싱해서 시각화해보자
df_all_day[:30].plot(kind = "bar", figsize = (10, 3))
코로나 19데이터의 확진수 데이터를 사용해 누적 확진수를 구하고자 한다.
df_all_day["누적확진수"] = df_all_day["확진수"].cumsum()
df_all_day
시각화해보자
df_all_day.plot(secondary_y = "확진수", figsize = (10, 3))