Que faire lorsque les pandas ne reconnaissent pas la chaîne de données NA / ND comme une valeur manquante
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
discussion
Liste des commentaires
Il n'y a pas encore de commentaires