2017-09-24 4 views
-1

Quelle est la méthode efficace pour supprimer une valeur aberrante d'une base de données pandas? J'ai une base de données pandas où je dois supprimer les points aberrants de la base de données.Supprimer la valeur aberrante de l'élément de données pandas

X1  X2    X3    X4 
228.0 4474.91836735 3507.15151515 6625.0 
77.0 468.0   582.0   549.0 
160.0 9.0    3507.15151515 6625.0 
36.0 250.0   3507.15151515 6625.0 
52.0 3.0    3.0    223.0 
78.0 998.0   3507.15151515 6625.0 

J'ai essayé avec la solution dans link mais pas de points ont été enlevés. Même une implémentation de sklearn pour le même sera utile.

Répondre

0

Il y a vraiment deux problèmes ici: 1) la détection des valeurs aberrantes, et 2) leur suppression d'une trame de données.

Le problème n ° 2 est assez simple. Vous pouvez utiliser quelque chose comme ceci une fois que vous avez détecté des valeurs aberrantes dans vos colonnes:

df = df[df.loc[:,'column_name'] < high_threshold] 
df = df[df.loc[:,'column_name'] > low_threshold] 

maintenant pour # 1, les méthodes de détection des valeurs aberrantes varient considérablement. Si vous n'avez que ces 4 dimensions et pas tellement de données, une approche Median Absolute Deviation peut suffire sans avoir besoin de sklearn.

Puisque je ne connais pas votre application, je vais vous diriger vers this documentation on outlier detection in sklearn.