Comment nettoyer des données capteurs bruitées sans être docteur en statistiques

Cet article est le second d’une série de 7 articles liés au challenge pratique Apprenez à automatiser un reporting avec Python en 7 jours.

Le Problème : « Garbage In, Garbage Out »

En ingénierie, une analyse n’est jamais meilleure que la qualité des données entrantes. Un capteur qui « décroche » pendant une fraction de secondes peut générer un pic de pression aberrant à 10 000 bars, faussant totalement vos moyennes et vos calculs de fatigue. 

Le calvaire Excel : Faire défiler des milliers de lignes pour repérer les anomalies ou utiliser des filtres qui cachent les données sans vraiment les traiter pour les calculs suivants. 

image montrant le passage de données bruitées vers des données lissées, nettoyées grâce à Python

La Solution : Le Nettoyage Vectorisé

Plutôt que de traiter les cellules une par une, Python traite la colonne entière comme un signal physique.
Nous allons voir comment éliminer le « bruit » et les erreurs de mesure instantanément. 

Le Code Concret : Le « Sanity Check » Automatique

Dans l’article précédent, nous avons vu comment automatiser l’importation de fichiers CSV. Maintenant que nous avons notre base de travail, attaquons nous à la précision du signal.
Voici comment transformer un fichier brut et inexploitable en une base de données saine pour vos calculs de structure ou de thermique. 

1. Supprimer les lignes vides ou erreurs de lecture (NaN) 

Sous Excel, cela demande un filtre manuel. Ici, c'est une commande. 

df_clean = df_final.dropna(subset=['pression', 'temperature']) 

2. Éliminer les valeurs aberrantes (Outliers) 

Exemple : On sait que la pression ne peut physiquement pas dépasser 200 bars. 

On ne garde donc que les valeurs de pressions inférieures à 200 bars. 

df_clean = df_clean[df_clean['pression'] <= 200] 

3. Lissage du signal (Rolling Average) 

Pour éliminer le bruit du capteur et voir la tendance réelle on lisse le signal grâce à une moyenne flottante sur 10 points de mesure par exemple. 

df_clean['pression_lisse'] = df_clean['pression'].rolling(window=10).mean() 

print(f"Données initiales : {len(df_final)} lignes") 
print(f"Données nettoyées : {len(df_clean)} lignes") 

Vous voulez tester ce nettoyage vous-même ?

Cet exemple fait partie du De Facto Data Automation Kit.
Téléchargez gratuitement :
• 📊 les données capteurs brutes utilisées dans le challenge ;
• 🐍 le script Python de nettoyage ;
• ✅ la checklist de contrôle des données ;
• 📈 l’exemple avant/après ;
• 🔧 les scripts des 7 étapes du challenge ;
• 📄 le guide complet.

Pourquoi c’est une révolution pour votre précision ?

L’obstacle La méthode « Manuelle » La méthode « De Facto » 
Valeurs manquantes On laisse des zéros qui faussent les moyennes. dropna() les supprime proprement du calcul. 
Pics aberrants Difficiles à repérer sur un graphique dense. Un filtre logique les élimine en une milliseconde. 
Bruit de mesure Courbe « en dents de scie » illisible. Lissage mathématique (moyenne glissante) instantané. 
Traçabilité On modifie le fichier source (dangereux). Le fichier source reste intact, le nettoyage est scripté. 

Le Conseil « De Facto »

Ne supprimez jamais vos données brutes. L’avantage de Python est que votre script crée une « copie propre » (df_clean) tout en gardant l’original intact. Si vous réalisez plus tard que votre seuil de 200 bars était trop bas, il suffit de changer un chiffre dans le code et de relancer le script. C’est la reproductibilité. 

Exemple concret

Ce graphique interactif a été réalisé avec Plotly, permettant une exploration dynamique des signaux capteurs.

👉 Cliquez ici pour apprendre à manipuler ce graphique
  • Zoom : Cliquez et glissez sur une zone du signal.
  • Détails : Survolez les points pour voir la pression exacte.
  • Filtre : Cliquez sur la légende pour masquer une courbe.
  • Reset : Double-cliquez pour revenir à la vue globale.

Conclusion : 

Maintenant que nous avons éliminé le bruit parasite, nous pouvons enfin faire parler la physique. Pas besoin d’étirer des formules Excel sur des milliers de lignes.

Dans l’article suivant nous aborderons la notion de calcul vectorisé à travers un cas concret.

➡️ Lire l’article : Calculez à la vitesse de l’éclair. De la donnée propre à la puissance physique.

Laisser un commentaire