importpandasaspdfromcowidev.utils.cleanimportclean_date_seriesMETADATA={"source_url":{"main":"https://github.com/pcm-dpc/COVID-19/raw/master/dati-andamento-nazionale/dpc-covid19-ita-andamento-nazionale.csv","flow":"https://covid19.infn.it/iss/csv_part/iss_bydate_italia_ricoveri.csv",},"source_url_ref":"https://github.com/pcm-dpc/COVID-19, https://covid19.infn.it/iss/","source_name":"Ministry of Health and Higher Institute of Health","entity":"Italy",}
[docs]defmain()->pd.DataFrame:hosp_flow=(pd.read_csv(METADATA["source_url"]["flow"],usecols=["data","casi"]).rename(columns={"data":"date"}).sort_values("date").head(-5))hosp_flow["casi"]=hosp_flow.casi.rolling(7).sum()df=(pd.read_csv(METADATA["source_url"]["main"],usecols=["data","totale_ospedalizzati","terapia_intensiva","ingressi_terapia_intensiva"],).rename(columns={"data":"date"}).sort_values("date"))df["date"]=clean_date_series(df.date,"%Y-%m-%dT%H:%M:%S")df["ingressi_terapia_intensiva"]=df.ingressi_terapia_intensiva.rolling(7).sum()df=(pd.merge(hosp_flow,df,on="date",how="outer",validate="one_to_one").melt("date",var_name="indicator").dropna(subset=["value"]).assign(entity=METADATA["entity"]))df["indicator"]=df.indicator.replace({"casi":"Weekly new hospital admissions","ingressi_terapia_intensiva":"Weekly new ICU admissions","totale_ospedalizzati":"Daily hospital occupancy","terapia_intensiva":"Daily ICU occupancy",})returndf,METADATA