Pandas - Correction des données erronées


Données erronées

Les "données erronées" ne doivent pas nécessairement être des "cellules vides" ou un "mauvais format", elles peuvent simplement être erronées, comme si quelqu'un enregistrait "199" au lieu de "1,99".

Parfois, vous pouvez repérer des données erronées en examinant l'ensemble de données, car vous avez une attente de ce qu'elles devraient être.

Si vous regardez notre ensemble de données, vous pouvez voir qu'à la ligne 7, la durée est de 450, mais pour toutes les autres lignes, la durée est comprise entre 30 et 60.

Il n'est pas nécessaire que ce soit faux, mais compte tenu du fait qu'il s'agit de l'ensemble de données des séances d'entraînement de quelqu'un, nous concluons avec le fait que cette personne ne s'est pas entraînée en 450 minutes.

      Duration          Date  Pulse  Maxpulse  Calories
  0         60  '2020/12/01'    110       130     409.1
  1         60  '2020/12/02'    117       145     479.0
  2         60  '2020/12/03'    103       135     340.0
  3         45  '2020/12/04'    109       175     282.4
  4         45  '2020/12/05'    117       148     406.0
  5         60  '2020/12/06'    102       127     300.0
  6         60  '2020/12/07'    110       136     374.0
  7        450  '2020/12/08'    104       134     253.3
  8         30  '2020/12/09'    109       133     195.1
  9         60  '2020/12/10'     98       124     269.0
  10        60  '2020/12/11'    103       147     329.3
  11        60  '2020/12/12'    100       120     250.7
  12        60  '2020/12/12'    100       120     250.7
  13        60  '2020/12/13'    106       128     345.3
  14        60  '2020/12/14'    104       132     379.3
  15        60  '2020/12/15'     98       123     275.0
  16        60  '2020/12/16'     98       120     215.2
  17        60  '2020/12/17'    100       120     300.0
  18        45  '2020/12/18'     90       112       NaN
  19        60  '2020/12/19'    103       123     323.0
  20        45  '2020/12/20'     97       125     243.0
  21        60  '2020/12/21'    108       131     364.2
  22        45           NaN    100       119     282.0
  23        60  '2020/12/23'    130       101     300.0
  24        45  '2020/12/24'    105       132     246.0
  25        60  '2020/12/25'    102       126     334.5
  26        60      20201226    100       120     250.0
  27        60  '2020/12/27'     92       118     241.0
  28        60  '2020/12/28'    103       132       NaN
  29        60  '2020/12/29'    100       132     280.0
  30        60  '2020/12/30'    102       129     380.3
  31        60  '2020/12/31'     92       115     243.0

Comment corriger les valeurs erronées, comme celle de "Duration" à la ligne 7 ?


w3schools CERTIFIED . 2021

Obtenir une certification!

Complétez les modules Pandas, faites les exercices, passez l'examen et vous deviendrez certifié w3schools !

10 $ S'INSCRIRE

Remplacement de valeurs

Une façon de corriger les valeurs erronées consiste à les remplacer par autre chose.

Dans notre exemple, il s'agit très probablement d'une faute de frappe, et la valeur devrait être "45" au lieu de "450", et nous pourrions simplement insérer "45" dans la ligne 7 :

Exemple

Définissez "Durée" = 45 à la ligne 7 :

df.loc[7, 'Duration'] = 45

Pour les petits ensembles de données, vous pourrez peut-être remplacer les mauvaises données une par une, mais pas pour les grands ensembles de données.

Pour remplacer les données erronées par des ensembles de données plus volumineux, vous pouvez créer des règles, par exemple définir des limites pour les valeurs légales et remplacer toutes les valeurs qui sont en dehors des limites.

Exemple

Parcourez toutes les valeurs de la colonne "Durée".

Si la valeur est supérieure à 120, réglez-la sur 120 :

for x in df.index:
  if df.loc[x, "Duration"] > 120:
    df.loc[x, "Duration"] = 120

Suppression de lignes

Une autre façon de gérer les données erronées consiste à supprimer les lignes contenant des données erronées.

De cette façon, vous n'avez pas à savoir par quoi les remplacer, et il y a de fortes chances que vous n'en ayez pas besoin pour faire vos analyses.

Exemple

Supprimez les lignes où "Duration" est supérieur à 120 :

for x in df.index:
  if df.loc[x, "Duration"] > 120:
    df.drop(x, inplace = True)