diff --git a/parse_todesfaelle.py b/parse_todesfaelle.py index c87f6f0..529f6cd 100644 --- a/parse_todesfaelle.py +++ b/parse_todesfaelle.py @@ -4,7 +4,7 @@ ''' :author: Maximilian Golla :contact: maximilian.golla@rub.de -:version: 0.0.5, 2022-02-01 +:version: 0.0.6, 2022-02-03 :description: Parses and formats RKI Todesfaelle nach Sterbedatum :data: https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/Projekte_RKI/COVID-19_Todesfaelle.xlsx ''' @@ -86,7 +86,7 @@ def parse(data): result[year][week][state] = dead return result -def query(data, base, compare): +def query(data, base, compare, n): b_year = base[0:4] b_week = base[4:6] c_year = compare[0:4] @@ -148,20 +148,24 @@ def query(data, base, compare): # Percentage diff_percent = round( (diff * 100.0) / base_value[state], 2) + ''' if diff == 0: diff = "+-" + str(diff) elif diff > 0: diff = "+" + str(diff) else: diff = str(diff) + ''' differences[state] = diff + ''' if diff_percent == 0: diff_percent = "+-" + str(diff_percent) + " %" elif diff_percent > 0: diff_percent = "+" + str(diff_percent) + " %" else: diff_percent = str(diff_percent) + " %" + ''' difference_percent[state] = diff_percent print("Change (Absolute):") @@ -169,11 +173,36 @@ def query(data, base, compare): print("Change (Percent):") print(difference_percent) + # Get Top N entries + top = dict() + for i in range(0, n): + max_key = max(difference_percent, key=difference_percent.get) + top[max_key] = difference_percent[max_key] + del difference_percent[max_key] + + print("\nTop {}:".format(n)) + print(top) -def output(data): + time_series = dict() + for i in range(0, end + 1): + year = all_entries[i][0:4] + week = all_entries[i][4:6] + for state in top: + if i >= start: + if year not in time_series: + time_series[year] = dict() + if week not in time_series[year]: + time_series[year][week] = dict() + if state not in time_series[year][week]: + time_series[year][week][state] = data[year][week][state] + + print("\nTime Series:") + output(time_series, top) + +def output(data, states): # Print the header header = ["Jahr", "Woche"] - for state in STATES: + for state in states: header.append(state) print("\t".join(header)) @@ -181,7 +210,7 @@ def output(data): for year in data: for week in data[year]: line = [str(year), str(week)] - for state in STATES: + for state in states: dead = str(data[year][week][state]) line.append(dead) print("\t".join(line)) @@ -189,9 +218,11 @@ def output(data): def main(): data = read_file('COVID-19_Todesfaelle.csv') data = parse(data) - #output(data) - query(data, "202130", "202131") + output(data, STATES) + + base = "202130" + compare = "202131" + query(data, base, compare, 5) if __name__ == '__main__': main() -