Was tun, wenn Pandas die Datenzeichenfolge NA / ND nicht als fehlenden Wert erkennt?

2018/12/5

Fehlende Werte bei Pandas

In experimentellen Datensätzen können Leerzeichen mit NA, NA (nicht analysiert) oder ND, ND (nicht nachgewiesen) ergänzt werden. In Pandas werden NA und ND nur als Zeichenfolge (Objekt) erkannt, sodass es nicht möglich ist, fehlende Werte mit den Funktionen dropna (), fillna () und isnull () unverändert zu verarbeiten.

Folgendes wird in Pandas als fehlender Wert erkannt:

  • NaN
  • Andere
  • np.nan
  • mathe.nan

Die Zeichenfolgen NA und ND müssen in eine der oben genannten konvertiert werden.

Verarbeitung für NA und ND

Erstellen Sie Beispieldaten, einschließlich NA, ND und NaN.

In [1]: importiere numpy als np importiere Pandas als 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

Neinne und np.nan werden erkannt und als fehlende Werte gezählt, aber ND und NA sind falsch.
isnull (): Gibt True zurück, wenn der Wert fehlt
isnull.sum (): Aggregieren Sie fehlende Werte

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

Ersetzen Sie die Zeichenfolge ND durch die Ersetzungsfunktion

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 () und fillna () können jetzt angewendet werden.

In [5]: df.isnull () Out [5]: ABC 0 Falsch Falsch Falsch 1 Richtig Falsch Richtig 2 Falsch Falsch Richtig 3 Falsch Falsch Richtig In [6]: df.isnull (). Sum () Out [6] : A 2 B 0 C 2 dtyp: 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