[docs]defpipe_get_vax_timeline(self,df:pd.DataFrame)->pd.DataFrame:df_=df[df.vaccine!="UNK"]vax_wrong=set(df_.vaccine).difference(self.vaccines_mapping)ifvax_wrong:raiseValueError(f"Some unknown vaccines were found {vax_wrong}")self.vax_timeline=df_[["vaccine","date"]].groupby("vaccine").min().to_dict()["date"]self.vax_timeline={self.vaccines_mapping[vax]:dateforvax,dateinself.vax_timeline.items()}# print(self.vax_timeline)returndf
[docs]defpipe_metrics(self,df:pd.DataFrame)->pd.DataFrame:# Total vaccinationsdf["total_vaccinations"]=df.total_administered# People vaccinateddf.loc[df.dose_number==1,"people_vaccinated"]=df.total_administered# People fully vaccinateddf.loc[(df.dose_number==2)&(-df.vaccine.isin(VACCINES_ONE_DOSE)),"people_fully_vaccinated"]=df.total_administereddf.loc[(df.dose_number==1)&(df.vaccine.isin(VACCINES_ONE_DOSE)),"people_fully_vaccinated"]=df.total_administered# Boostersdf.loc[(df.dose_number>2)&(-df.vaccine.isin(VACCINES_ONE_DOSE)),"total_boosters"]=df.total_administereddf.loc[(df.dose_number>1)&(df.vaccine.isin(VACCINES_ONE_DOSE)),"total_boosters"]=df.total_administeredreturndf