#%% import json import pandas as pd class Metrics_to_PD_2: def __init__(self): #self.filpath = "real_data/UK_full_covid_data.csv" (old) relative filepath self.filepath = "real_data/UK_full_covid_data_may.csv" #(new) relative filepath def read_from_csv(self): df = pd.read_csv(self.filepath) return df def fill_zeros(self, data: list): updated_data = [x if x != 'nan' else x == 0 for x in data] return updated_data def get_reproduction_rate(self, dataFrame, get_list:bool): df = dataFrame if get_list: rep_rate = df["reproduction_rate"].to_list() return self.fill_zeros(rep_rate) else: rep_rate = df[["reproduction_rate"]] return rep_rate def get_stringency_index(self, dataFrame, get_list:bool): df = dataFrame if get_list: string_index = df["stringency_index"].to_list() return self.fill_zeros(string_index) else: string_index = df[["stringency_index"]] return string_index def get_positive_rate(self, dataFrame, get_list:bool): df = dataFrame if get_list: posi_rate = df["positive_rate"].to_list() return self.fill_zeros(posi_rate) else: posi_rate = df[["positive_rate"]] return posi_rate def main(self): get_list = True df = self.read_from_csv() R_rate = self.get_reproduction_rate(df, get_list) S_index = self.get_stringency_index(df, get_list) P_rate = self.get_positive_rate(df, get_list) date_list = self.read_from_csv()['date'].to_list() #print(R_rate, S_index, P_rate) Template = { "Date": date_list, "TransmissionRate": R_rate, "StringencyIndex": S_index, "PositiveRate": P_rate } print(Template) #convert to csv DF = pd.DataFrame.from_dict(Template) DF = DF.fillna(value=0) DF = DF.to_csv('rateFromRealData.csv') if __name__ == "__main__": data_2 = Metrics_to_PD_2() data_2.main()