Bonjour,

je m initie au langage Python pour mon travail et j ai un peu de mal à trouver la solution pour le problème suivant.
J ai recueilli 1 an de données à l aide de 4 capteurs à un pas de temps de 20 secondes sur 32 sites.
Il me faut maintenant les agréger à la minute.
Cependant avant l’agrégation, j'aimerais "nettoyer" les données aberrantes qui ne sont pas dans la gamme de mes variables (du à des déconnexions de capteurs).
Par exemple, mon capteur de température peut donner des valeurs de -999 quand il est déconnecté ou je peux mesurer une masse de -2000 dans la meme situation avec mon capteur de pesée.....


J'ai donc écrit le code suivant pour traiter l ensemble du dataframe:

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
 
 
 
# Get and Clean data
Hr=pd.read_csv('Hr.csv',decimal=",", sep = ';', parse_dates=['Time'], index_col=['Time'])
Hr = Hr[Hr[:,:].between(0, 100)]
Masse=pd.read_csv('Masse.csv',decimal=",", sep = ';', parse_dates=['Time'], index_col=['Time'])
Masse = Masse[Masse[:,:].between(1500, 2500)]
Temp=pd.read_csv('Temp.csv',decimal=",", sep = ';', parse_dates=['Time'], index_col=['Time'])
Temp = Temp[Temp[:,:].between(-10, 40)]
VPD=pd.read_csv('VPD.csv',decimal=",", sep = ';', parse_dates=['Time'], index_col=['Time'])
VPD = VPD[VPD[:,:].between(0, 5)]
 
# Resample to minute mean 
Hr_min=Hr.resample("T").mean()
Masse_min=Masse.resample("T").mean()
Temp_min=Temp.resample("T").mean()
VPD_min=VPD.resample("T").mean()
La partie d’agrégation à la minute fonctionne bien mais les lignes de"nettoyage" ne fonctionnent pas (expl: Hr = Hr[Hr[:,:].between(0, 100)]...)
Je m'y prend sans doute très mal pour tester l ensemble de mes 32 colonnes du tableau sur l année .

Y a til une solution à ce problème?

Merci à vous.

M.