Je souhaite extraire des données sur les nouveaux cas de COVID en Belgique par région à partir d'un fichier csv de Sciensano (anciennement institut de santé publique).
Ce csv à la structure suivante :
DATE	PROVINCE	REGION	AGEGROUP	SEX	CASES
2020-03-01	Brussels	Brussels	10-19	M	1
2020-03-01	Brussels	Brussels	10-19	F	1
2020-03-01	Brussels	Brussels	20-29	M	1
Le fichier donne par date le nombre de cas d'une région pour chaque tranche d'âge. Je ne m'intéresse qu'aux nouveaux cas par région. J'ai extrait les dates uniques du fichier csv (lignes 13 à 17). Pour chaque entrée "REGION" j'additionne les cas pour une même date et une même région.

Le problème est qu'il y a des données manquantes avec la valeur NaN. Lorsque je cherche l'index de la position d'une valeur de la colonne REGION (lignes 24 à 33), l'erreur ValueError: nan is not in list s'affiche.

Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
import pandas as pd
import io
import requests
import numpy as np
from matplotlib import pyplot as plt
from datetime import date, timedelta
 
url_CC = "https://epistat.sciensano.be/Data/COVID19BE_CASES_AGESEX.csv"
s_CC = requests.get(url_CC).content
df_CC = pd.read_csv(io.StringIO(s_CC.decode('iso_8859_1')))
 
df_CC['REGION'] = df_CC['REGION'].astype(str)
liste_dates = df_CC['DATE'].values
liste_dates= liste_dates.astype(str)
liste_dates = list(set(liste_dates))
liste_dates.sort()
 
len_liste_dates = len(liste_dates)
Bruxelles_CC=[0 for i in range(len_liste_dates)]
Wallonie_CC=[0 for i in range(len_liste_dates)]
Flandre_CC=[0 for i in range(len_liste_dates)]
 
for i in range(0,len(df_CC)):
  if df_CC.iloc[i,2] == "Brussels":
    position = liste_dates.index(df_CC.iloc[i,0])
    Bruxelles_CC[position]=Bruxelles_CC[position] + df_CC.iloc[i,5]
  if df_CC.iloc[i,2] == "Flanders":
    position = liste_dates.index(df_CC.iloc[i,0])
    Flandre_CC[position]=Flandre_CC[position] + df_CC.iloc[i,5]
  if df_CC.iloc[i,2] == "Wallonia":
    position = liste_dates.index(df_CC.iloc[i,0])
    Wallonie_CC[position]=Wallonie_CC[position] + df_CC.iloc[i,5]
 
Bruxelles_cumul_CC=np.cumsum(Bruxelles_CC)
Flandre_cumul_CC=np.cumsum(Flandre_CC)
Wallonie_cumul_CC=np.cumsum(Wallonie_CC)
Belgique_cumul_CC = list(map(sum, zip(Bruxelles_cumul_CC,Wallonie_cumul_CC,Flandre_cumul_CC)))
Comment peut-on résoudre cette erreur ?