Cosa fare quando i panda non riconoscono la stringa di dati NA / ND come valore mancante

2018 年 12 月 5 日

Valori mancanti nei panda

Nei set di dati sperimentali, i bianchi possono essere integrati con NA, NA (non analizzato) o ND, ND (non rilevato). In panda, NA e ND sono riconosciuti solo come una stringa di caratteri (oggetto), quindi non è possibile elaborare in batch i valori mancanti utilizzando le funzioni dropna (), fillna () e isnull () così come sono ...

I seguenti sono riconosciuti come valori mancanti nei panda:

  • NaN
  • Nessuna
  • np.nan
  • matematica.nan

Le stringhe NA e ND devono essere convertite in una delle precedenti.

Elaborazione per NA e ND

Crea dati campione inclusi NA, ND e NaN.

In [1]: import numpy as np import pandas as pd df = pd.DataFrame ({'A': [1, 'ND', 2, 3], 'B': [4, 'NA', 5, 6 ], 'C': [7, 'ND', Nessuno, np.nan]}) Uscita [1] ABC 0 1 4 7 1 ND NA ND 2 2 5 NaN 3 3 5 NaN

Nonne e np.nan vengono riconosciuti e contati come valori mancanti, ma ND e NA sono False.
isnull (): restituisce True se il valore è mancante
isnull.sum (): valori mancanti aggregati

In [2]: df.isnull () Out [2]: ABC 0 False False False 1 False False False 2 False False True 3 False False True In [3]: df.isnull (). Sum () Out [3] : A 0 B 0 C 2 dtipo: int64

Sostituisci la stringa ND con la funzione di sostituzione

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 () e fillna () possono ora essere applicati.

In [5]: df.isnull () Out [5]: ABC 0 False False False 1 True False True 2 False False True 3 False False True 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