feat: Added parsing of details and table with details to dashboard
This commit is contained in:
parent
fe6cfaf8b6
commit
bac8cac1b7
3 changed files with 138 additions and 3 deletions
53
plot.py
53
plot.py
|
@ -40,8 +40,6 @@ with open(data_filename, 'wb') as outfile:
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
rki_file = pd.read_excel(data_filename, sheet_name=None, engine='openpyxl')
|
||||
|
||||
raw_data = rki_file['Impfungen_proTag']
|
||||
|
@ -113,6 +111,54 @@ print_stand = stand_date.isoformat()
|
|||
filename_stand = stand_date.strftime("%Y%m%d%H%M%S")
|
||||
|
||||
|
||||
# Infos der einzelnen Länder
|
||||
details_sheet_name = (set(rki_file.keys()) - {'Erläuterung', 'Impfungen_proTag'}).pop()
|
||||
|
||||
details_sheet = rki_file[details_sheet_name]
|
||||
|
||||
land_names = details_sheet['Bundesland'].iloc[0:17]
|
||||
|
||||
total_vaccinations_by_land = details_sheet['Impfungen kumulativ'].iloc[0:17]
|
||||
vaccination_per_mille_by_land = details_sheet['Impfungen pro 1.000 Einwohner'].iloc[0:17]
|
||||
|
||||
vaccination_reason_age_by_land = details_sheet['Indikation nach Alter*'].iloc[0:17]
|
||||
vaccination_reason_job_by_land = details_sheet['Berufliche Indikation*'].iloc[0:17]
|
||||
vaccination_reason_medical_by_land = details_sheet['Medizinische Indikation*'].iloc[0:17]
|
||||
vaccination_reason_oldhome_by_land = details_sheet['Pflegeheim-bewohnerIn*'].iloc[0:17]
|
||||
|
||||
details_per_land = {}
|
||||
details_per_land_formatted = {}
|
||||
for i in range(len(land_names)):
|
||||
|
||||
details_per_land[land_names[i]] = {
|
||||
'total_vaccinations': int(total_vaccinations_by_land[i]),
|
||||
'total_vaccinations_percentage': vaccination_per_mille_by_land[i] / 10,
|
||||
'vaccination_reason_age': int(vaccination_reason_age_by_land[i]),
|
||||
'vaccination_reason_age_percentage': np.round(vaccination_reason_age_by_land[i] / total_vaccinations_by_land[i] * 100),
|
||||
'vaccination_reason_job': int(vaccination_reason_job_by_land[i]),
|
||||
'vaccination_reason_job_percentage': np.round(vaccination_reason_job_by_land[i] / total_vaccinations_by_land[i] * 100),
|
||||
'vaccination_reason_medical': int(vaccination_reason_medical_by_land[i]),
|
||||
'vaccination_reason_medical_percentage': np.round(vaccination_reason_medical_by_land[i] / total_vaccinations_by_land[i] * 100),
|
||||
'vaccination_reason_oldhome': int(vaccination_reason_oldhome_by_land[i]),
|
||||
'vaccination_reason_oldhome_percentage': np.round(vaccination_reason_oldhome_by_land[i] / total_vaccinations_by_land[i] * 100),
|
||||
|
||||
}
|
||||
details_per_land_formatted[land_names[i]] = {
|
||||
'total_vaccinations': '{:n}'.format(int(total_vaccinations_by_land[i])).replace('.', ' '),
|
||||
'total_vaccinations_percentage': '{:.3n}'.format(np.round(vaccination_per_mille_by_land[i] / 10, 2)),
|
||||
'vaccination_reason_age': '{:n}'.format(int(vaccination_reason_age_by_land[i])).replace('.', ' '),
|
||||
'vaccination_reason_age_percentage': '{:n}'.format(np.round(vaccination_reason_age_by_land[i] / total_vaccinations_by_land[i] * 100)),
|
||||
'vaccination_reason_job': '{:n}'.format(int(vaccination_reason_job_by_land[i])).replace('.', ' '),
|
||||
'vaccination_reason_job_percentage': '{:n}'.format(np.round(vaccination_reason_job_by_land[i] / total_vaccinations_by_land[i] * 100)),
|
||||
'vaccination_reason_medical': '{:n}'.format(int(vaccination_reason_medical_by_land[i])).replace('.', ' '),
|
||||
'vaccination_reason_medical_percentage': '{:n}'.format(np.round(vaccination_reason_medical_by_land[i] / total_vaccinations_by_land[i] * 100)),
|
||||
'vaccination_reason_oldhome': '{:n}'.format(int(vaccination_reason_oldhome_by_land[i])).replace('.', ' '),
|
||||
'vaccination_reason_oldhome_percentage': '{:n}'.format(np.round(vaccination_reason_oldhome_by_land[i] / total_vaccinations_by_land[i] * 100)),
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
archive_folder = site_folder + 'archive/' + filename_stand
|
||||
|
||||
if os.path.isdir(archive_folder):
|
||||
|
@ -227,7 +273,8 @@ def render_dashboard():
|
|||
last_date_day_rate_done = last_date_day_rate_done.strftime(df),
|
||||
mean_vaccinations_last_seven_days = '{:n}'.format(mean_vaccinations_last_seven_days_int).replace('.', ' '),
|
||||
mean_vaccinations_last_seven_days_herd_immunity = mean_vaccinations_last_seven_days_herd_immunity.strftime(df),
|
||||
mean_vaccinations_last_seven_days_done = mean_vaccinations_last_seven_days_done.strftime(df)
|
||||
mean_vaccinations_last_seven_days_done = mean_vaccinations_last_seven_days_done.strftime(df),
|
||||
details_per_land = details_per_land_formatted
|
||||
).dump('site/index.xhtml')
|
||||
|
||||
shutil.copyfile(dashboard_filename, dashboard_archive_filename)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue