Skip to content
Snippets Groups Projects
Commit 7c855651 authored by Gilares Paul's avatar Gilares Paul
Browse files

Edit 3-filter_param.py

parent 7ececf5c
No related branches found
No related tags found
No related merge requests found
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)
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')
# 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)
filtered_df = df[df['cdparametre'].str.strip().isin(params)]
# Filtrer les lignes selon la liste de paramètres
filtered_rows = [row for row in reader if row['cdparametre'].strip() in parametres_a_filtrer]
filtered_df.to_csv(output_file, index=False, encoding='utf-8-sig')
if not filtered_rows:
print("Aucune ligne trouvée avec les valeurs spécifiées de cdparametre. Vérifiez le fichier !")
exit(1)
print(f"Fichier filtré créé avec {len(filtered_df)} lignes : {output_file}")
# É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)
dates = ["20" + str(i).zfill(2) for i in range(18, 25)]
processed_dates = []
print(f"Fichier filtré créé avec {len(filtered_rows)} lignes : {output_file}")
for date in dates:
print(f"Filtrage des paramètres pour {date}")
filtrage(parametres_a_filtrer, date)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment