diff --git a/src/3-filter_param.py b/src/3-filter_param.py index 44f82a54faf1fadab4b6599a3f97b88d284fd6fe..876a54c5eee1dbc469a0c2f47c07f48b9b623d0d 100644 --- a/src/3-filter_param.py +++ b/src/3-filter_param.py @@ -1,10 +1,5 @@ -import csv +import pandas as pd -# Fichiers d'entrée et de sortie -input_file = "data/processed/Table2018_normalized.csv" # à modifier -output_file = "data/processed/Filtre2018.csv" # à modifier - -# Liste des paramètres à filtrer parametres_a_filtrer = { '1302.0', #pH '1382.0', #plomb @@ -15,34 +10,24 @@ parametres_a_filtrer = { '1339.0', #nitrites '1340.0', #nitrates '1398.0', #chlore - #'1314.0', #dco -- 0 - #'1313.0', #dbo5 -- 0 - #'7009.0', #indice hydrocarbures -- 0 - #'6275.0', #trihalométhanes -- 0 - #'1059.0', #bactériophages fécaux -- 0 '6276.0' #pesticides } -with open(input_file, mode='r', newline='', encoding='utf-8-sig') as csvfile: - reader = csv.DictReader(csvfile) - - # Vérifier que 'cdparametre' est bien dans les colonnes - if 'cdparametre' not in reader.fieldnames: - print(f"Erreur : 'cdparametre' n'est pas dans les colonnes : {reader.fieldnames}") - exit(1) - - # Filtrer les lignes selon la liste de paramètres - filtered_rows = [row for row in reader if row['cdparametre'].strip() in parametres_a_filtrer] - -if not filtered_rows: - print("Aucune ligne trouvée avec les valeurs spécifiées de cdparametre. Vérifiez le fichier !") - exit(1) - -# Écriture des résultats -with open(output_file, mode='w', newline='', encoding='utf-8-sig') as csvfile: - fieldnames = filtered_rows[0].keys() - writer = csv.DictWriter(csvfile, fieldnames=fieldnames) - writer.writeheader() - writer.writerows(filtered_rows) - -print(f"Fichier filtré créé avec {len(filtered_rows)} lignes : {output_file}") +def filtrage(params, date): + input_file = f"data/processed/Table{date}_no_dup.csv" + output_file = f"data/processed/Filtre{date}.csv" + + df = pd.read_csv(input_file, encoding='utf-8-sig') + + filtered_df = df[df['cdparametre'].str.strip().isin(params)] + + filtered_df.to_csv(output_file, index=False, encoding='utf-8-sig') + + print(f"Fichier filtré créé avec {len(filtered_df)} lignes : {output_file}") + +dates = ["20" + str(i).zfill(2) for i in range(18, 25)] +processed_dates = [] + +for date in dates: + print(f"Filtrage des paramètres pour {date}") + filtrage(parametres_a_filtrer, date)