Source code for cowidev.testing.batch.taiwan

import pandas as pd

from cowidev.testing import CountryTestBase
from cowidev.utils import clean_date_series


[docs]class Taiwan(CountryTestBase): location: str = "Taiwan" units: str = "people tested" source_label: str = "Taiwan CDC Open Data Portal" source_url: str = "https://od.cdc.gov.tw/eic/covid19/covid19_tw_specimen.csv" source_url_ref: str = "https://data.cdc.gov.tw/en/dataset/daily-cases-suspected-sars-cov-2-infection_tested" rename_columns: dict = { "通報日": "Date", "Total": "Daily change in cumulative total", }
[docs] def read(self) -> pd.DataFrame: """Read data from source""" df = pd.read_csv(self.source_url, usecols=["通報日", "Total"]) return df
[docs] def pipe_date(self, df: pd.DataFrame) -> pd.DataFrame: """Convert date to datetime""" return df.assign(Date=clean_date_series(df["Date"], "%Y/%m/%d"))
[docs] def pipe_filter(self, df: pd.DataFrame) -> pd.DataFrame: """Filter data""" df = df[~df["Daily change in cumulative total"].isna() & df["Daily change in cumulative total"] > 0] return df
[docs] def pipeline(self, df: pd.DataFrame) -> pd.DataFrame: """Pipeline for data""" return df.pipe(self.pipe_rename_columns).pipe(self.pipe_date).pipe(self.pipe_filter).pipe(self.pipe_metadata)
[docs] def export(self): """Export data to CSV""" df = self.read().pipe(self.pipeline) self.export_datafile(df)
[docs]def main(): Taiwan().export()