Que faire lorsque les pandas ne reconnaissent pas la chaîne de données NA / ND comme une valeur manquante

2018er mars 12

Valeurs manquantes chez les pandas

Dans les ensembles de données expérimentales, les blancs peuvent être complétés par NA, NA (non analysé) ou ND, ND (non détecté). Dans les pandas, NA et ND sont reconnus comme une simple chaîne de caractères (objet), il n'est donc pas possible de traiter par lots les valeurs manquantes à l'aide des fonctions dropna (), fillna () et isnull () telles quelles. ..

Les éléments suivants sont reconnus comme des valeurs manquantes chez les pandas:

  • NaN
  • Aucun
  • np.nan
  • math.nan

Les chaînes NA et ND doivent être converties en l'une des chaînes ci-dessus.

Traitement pour NA et ND

Créez des exemples de données, notamment NA, ND et NaN.

Dans [1]: importer numpy en tant que np importer des pandas en tant que pd df = pd.DataFrame ({'A': [1, 'ND', 2, 3], 'B': [4, 'NA', 5, 6 ], 'C': [7, 'ND', None, np.nan]}) Out [1] ABC 0 1 4 7 1 ND NA ND 2 2 5 NaN 3 3 5 NaN

Nonne et np.nan sont reconnus et comptés comme des valeurs manquantes, mais ND et NA sont faux.
isnull (): renvoie True si la valeur est manquante
isnull.sum (): agréger les valeurs manquantes

In [2]: df.isnull () Out [2]: ABC 0 Faux Faux Faux 1 Faux Faux Faux 2 Faux Faux Vrai 3 Faux Faux Vrai In [3]: df.isnull (). Sum () Out [3] : A 0 B 0 C 2 dtype: int64

Remplacer la chaîne ND par la fonction de remplacement

In [4]: ​​df = df.replace ('ND', np.nan) Out [4]: ​​A B C 0 1 4 7 1 NaN NA NaN 2 2 5 NaN 3 3 5 NaN

isnull () et fillna () peuvent maintenant être appliqués.

In [5]: df.isnull () Out [5]: ABC 0 Faux Faux Faux 1 Vrai Faux Vrai 2 Faux Faux Vrai 3 Faux Faux Vrai In [6]: df.isnull (). Sum () Out [6] : A 2 B 0 C 2 dtype: int64 In [7]: df.fillna (10) Out [7]: ABC 0 1 4 7 1 10 NA 10 2 2 5 10 3 3 5 10