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:
La partie d’agrégation à la minute fonctionne bien mais les lignes de"nettoyage" ne fonctionnent pas (expl: Hr = Hr[Hr[:,:].between(0, 100)]...)
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()
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.
Partager