멋사 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))