Source code for cowidev.hosp.sources.south_korea

import pandas as pd


METADATA = {
    "source_url_hosp_stock": "https://raw.githubusercontent.com/WWolf/korea-covid19-hosp-data/main/beds.csv",
    "source_url_hosp_flow_icu_stock": "https://github.com/WWolf/korea-covid19-hosp-data/raw/main/hospitalization.csv",
    "source_url_icu_flow": "https://raw.githubusercontent.com/WWolf/korea-covid19-hosp-data/main/weekly_icu.csv",
    "source_url_ref": "http://ncov.mohw.go.kr/en/bdBoardList.do?brdId=16&brdGubun=161&dataGubun=&ncvContSeq=&contSeq=&board_id=",
    "source_name": "Ministry of Health and Welfare, via WWolf on GitHub",
    "entity": "South Korea",
}


[docs]def main(): hosp_flow_icu_stock = ( pd.read_csv( METADATA["source_url_hosp_flow_icu_stock"], usecols=[ "Date", "Hospitalizations with moderate to severe symptoms", "New hospital admissions (daily)", ], na_values="NA", ) .rename(columns={"Date": "date"}) .sort_values("date") ) hosp_flow_icu_stock["New hospital admissions (daily)"] = ( hosp_flow_icu_stock["New hospital admissions (daily)"].rolling(7).sum() ) icu_flow = ( pd.read_csv( METADATA["source_url_icu_flow"], usecols=["Date", "Hospital admissions with moderate to severe symptoms (weekly)"], na_values="NA", ) .rename(columns={"Date": "date"}) .sort_values("date") ) hosp_stock = ( pd.read_csv(METADATA["source_url_hosp_stock"]) .drop_duplicates() .rename(columns={"Date": "date"}) .sort_values("date") ) hosp_stock["Daily hospital occupancy"] = ( hosp_stock["위중증"] + hosp_stock["준중증"] + hosp_stock["중등증"] + hosp_stock["경증"] ) hosp_stock = hosp_stock[["date", "Daily hospital occupancy"]] df = ( hosp_flow_icu_stock.merge(icu_flow, on="date", how="outer", validate="one_to_one") .merge(hosp_stock, on="date", how="outer", validate="one_to_one") .melt("date", var_name="indicator") .dropna(subset=["value"]) ) df["indicator"] = df.indicator.replace( { "Hospitalizations with moderate to severe symptoms": "Daily ICU occupancy", "New hospital admissions (daily)": "Weekly new hospital admissions", "Hospital admissions with moderate to severe symptoms (weekly)": "Weekly new ICU admissions", } ) df["entity"] = METADATA["entity"] return df, METADATA
if __name__ == "__main__": main()