Python project: COVID cijfers per gemeente

De afgelopen maanden heb ik mijn eigen “goede” raad opgevolgd en me wat verdiept in de programmeertaal Python. Wie met data en cijfers aan de slag wil moet de taal zeker overwegen.

Met amper 43 lijntjes code (en het had met minder gekund) slaagde ik erin om 30 JSON-bestanden (één bestand per dag) van de site van Sciensano te downloaden, er één of meerdere gemeentes uit te filteren en die cijfers in een grafiek te gieten.

Het is met ruime voorsprong de eenvoudigste programmeertaal die ik ooit heb geleerd. Wie interesse of vragen heeft mag me zeker contacteren.

Het totale aantal Corona-positief geteste mensen in Kortrijk en Roeselare

In de regels 7 tot 11 bepaald ik de periode van de welke ik gegevens wil downloaden.
In de regels 13 tot 19 download ik de gegevens van de website van Sciensano en sla enkel (de voor mij) relevante gegevens op op mijn harde schijf. Door de informatie lokaal op te slaan moet ik niet voor elke nieuwe grafiek de site van Sciensano belasten.
In de regels 21 tot 37 filter ik uit alle bestanden de gegevens die ik nodig heb en ik vorm ze om tot een ‘dataframe’ die als basis kan dienen voor de grafiek die ik wil. Het volstaat om op regel 22 gemeentes toe te voegen of te verwijderen om meer of minder informatie in de grafiek te krijgen.
Tot slot op de regels 38 en 39 genereer ik de eigenlijke grafiek.

import datetime
import pandas as pd
import json
import matplotlib.pyplot as plt

dateList = []
def define_timeframe():
	a = datetime.datetime.today()
	numdays = 30
	for x in range (numdays, 1,-1):
		dateList.append(a - datetime.timedelta(days = x))

def download_sciensano_raw_data():
	for date in dateList:
		variable = date.strftime("%Y%m%d")
		url = "https://epistat.sciensano.be/Data/"+variable+"/COVID19BE_CASES_MUNI_CUM_"+variable+".json"
		dataframe_import = pd.read_json(url)
		dataframe_export = dataframe_import[["NIS5","TX_DESCR_NL","CASES"]]
		dataframe_export.to_json(r"d:\\sciensano\\"+variable+".json")

def draw_a_graph():
	graph_data_for_cities = ['Kortrijk','Roeselare']
	data_for_dataframe = {}
	data_for_dataframe['datum'] = []
	for city in graph_data_for_cities:
		data_for_dataframe[city] = []

	for date in dateList:
		variable = date.strftime("%Y%m%d")
		url = "d:\\sciensano\\"+variable+".json"
		dataframe_import = pd.read_json(url)

		data_for_dataframe['datum'].append(date.strftime("%d-%m-%Y"))
		for city in graph_data_for_cities:
				data_for_dataframe[city].append(int(dataframe_import[dataframe_import['TX_DESCR_NL']==city]['CASES']))
				
	dataframe_for_graph = pd.DataFrame(data_for_dataframe,columns=['datum'] + graph_data_for_cities)
	dataframe_for_graph.plot.line(x="datum",title="Totaal aantal COVID patiënten sinds 13 maart (evolutie afgelopen 30 dagen)")
	plt.show()

define_timeframe()
#download_sciensano_raw_data	
draw_a_graph()

Wat te doen in coronatijden?

Wie zin heeft om te leren programmeren (of om een nieuwe programmeertaal te leren) kan terecht op het YouTube kanaal van UHasselt. Daar vind je een cursus Python in de vorm van 32 korte video’s.

Verspil in eerste instantie geen tijd aan het installeren van een programmeeromgeving, maar maak gebruik van Repl.It. Een (gratis) onlineplatform waarop je programmacode kan schrijven in tientallen programmeertalen (waaronder dus ook Python). Het online platform verwerkt de code zoals de compiler het zou doen.

Laat gerust eens weten hoe het gaat!

Veel succes.
Meneer Depuydt