[docs]defadd_latest_from_acdc(df:pd.DataFrame,metrics:list,priority:bool=False):# Get mapping countrieslocations=set(df.location)countries={acdc:owidforacdc,owidinACDC_COUNTRIES_ALL.items()ifowidinlocations}# Get ACDC dataapi=AfricaCDC(True)dfa=api.read()dfa=dfa.pipe(api.pipeline,countries,exclude=False)# Set ignored metrics to NAmetrics_ignore={m:pd.NAforminMETRICSifmnotinmetrics}dfa=dfa.assign(**metrics_ignore)# Do not use all-zero valuedmsk=(dfa[metrics]==0).all(axis=1)dfa=dfa[~msk]# Concatenatedf=pd.concat([df,dfa],ignore_index=True).sort_values(["date","location"])# Propagate vaccinesx=(df.dropna(subset=["vaccine"]).sort_values("date").drop_duplicates().rename(columns={"vaccine":"vaccine_latest"}))df=df.merge(x[["location","vaccine_latest"]],on="location",how="outer")df=df.assign(vaccine=df.vaccine.fillna(df.vaccine_latest)).drop(columns=["vaccine_latest"])# Remove duplicates coming from WHOifpriority:df=df.sort_values(["source_url"]).drop_duplicates(subset=["location","date"],keep="first")returndf